Выберите строку, которая по крайней мере содержит поисковый запрос - PullRequest
0 голосов
/ 03 апреля 2012

Для каждой строки у меня есть столбец, который содержит числа, подобные этому 1,4,6,3,16,13. Как мне найти строку, которая содержит хотя бы это число? Обратите внимание, что он не должен вводить в заблуждение 1 только от 11 или 6 от 16 и т. Д.


SELECT FROM table WHERE category LIKE %$query$%

Структура таблицы:

id | title | category | description | rating

Ответы [ 2 ]

4 голосов
/ 03 апреля 2012
SELECT * FROM table WHERE FIND_IN_SET(1, category) != 0

Где 1 - это любой номер, который вы ищете.

0 голосов
/ 03 апреля 2012

Рассмотрим нормализацию вашей схемы и поместим category_id в отдельную таблицу.

Чтобы напрямую ответить на ваш вопрос, попробуйте:

WHERE category LIKE "$query,%" OR category LIKE "%,$query,%";

Чтобы обезопасить себя от SQL-инъекции при его использовании, убедитесь, что $ query содержит только цифры, выполнив: $query = preg_replace('/[^0-9]/i', '', $query);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...