Посмотрел, как я могу запросить базу данных для получения результатов с помощью 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 . "%'";
Это сработает
SELECT * FROM <TABLE>
WHERE foo=202 AND bar LIKE '%what%-my-life-is-like%'
Прежде всего, вы ищете строку, которая не существует. как вы объяснили в таблице, ваша строка
какие-моя жизнь-это-как
и вы запрашиваете строку
то, что-это-моя жизнь-это-как
с "есть" в середине "что" и "мое". если в вашей таблице есть обе строки, вы можете пропустить ее следующим образом.
SELECT * FROM test WHERE foo = 202 AND bar LIKE "% what% -life-like-like%"
is-
передmy
», дать запись, которая не соответствует этому критерию, и получить соответствие. Если вы хотите, чтобыis-
был необязательным, то замените его на%
. На первый взгляд, похоже, что учебное пособие просто не предоставляет никаких примеров, таких как этот, то есть, где%
между другим текстом, что просто делает его неполным IMO.