Как использовать SQL LIKE для сопоставления результатов

0

Посмотрел, как я могу запросить базу данных для получения результатов с помощью LIKE.

Например, у меня есть таблица с двумя столбцами foo и bar:

foo: 202
bar: "what-my-life-is-like"

Когда я запрашиваю:

SELECT * FROM <TABLE> WHERE foo = 202 AND bar LIKE '%what-is-my-life-is-like%'

Я ожидаю получить результат, вместо этого ничего не получаю. Как получить результат?

Кажется, не нравится, что "есть" происходит после "what-"

Полный пример:

// php
$name_path = "what-is-my-life-is-like";

query:
"SELECT * FROM <TABLE> WHERE foo = 202 AND bar LIKE '%" . $name_path . "%'";
  • 0
    «Я ожидаю получить результат» Почему? Вы не можете сказать «где находится строка is- перед my », дать запись, которая не соответствует этому критерию, и получить соответствие. Если вы хотите, чтобы is- был необязательным, то замените его на % . На первый взгляд, похоже, что учебное пособие просто не предоставляет никаких примеров, таких как этот, то есть, где % между другим текстом, что просто делает его неполным IMO.
  • 0
    Строка будет переменной, поэтому я не могу знать, какое это значение.
Показать ещё 4 комментария
Теги:

2 ответа

0

Это сработает

SELECT * FROM <TABLE>
WHERE foo=202 AND bar LIKE '%what%-my-life-is-like%'
0

Прежде всего, вы ищете строку, которая не существует. как вы объяснили в таблице, ваша строка

какие-моя жизнь-это-как

и вы запрашиваете строку

то, что-это-моя жизнь-это-как

с "есть" в середине "что" и "мое". если в вашей таблице есть обе строки, вы можете пропустить ее следующим образом.

SELECT * FROM test WHERE foo = 202 AND bar LIKE "% what% -life-like-like%"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню