Я хотел выполнить поиск по нескольким строкам и получить строку, содержащую определенный элемент.Несколько LIKE в SQL
Таблица в mySQL настроена так, что каждый идентификатор имеет уникальный список (с разделителями-запятыми) значений для каждой строки.
Ex:
id | order
1 | 1,3,8,19,34,2,38
2 | 4,7,2,190,38
Теперь, если я хочу, чтобы вытащить строку, которая содержала только номер 19, как бы я идти об этом? Возможности я мог бы фигурировать в списке с LIKE условие будет:
19, <-- 19 at the start of the list
,19 <-- 19 at the end of the list
,19, <-- 19 inside the list
Я попытался следующие, и я не могу получить какие-либо результаты, Спасибо за вашу помощь!
SELECT *
FROM categories
WHERE order LIKE '19,%' OR '%,19%' OR '%,19%'
LIMIT 0 , 30
Обратите внимание, что фраза «строка, содержащая только номер 19», может пониматься как означающая только строки, которые имеют только значение 19 в поле порядка, и в этом случае ни одна из ваших двух примерных строк не будет соответствовать. Я понял это, исходя из остальной части вашего текста, чтобы означать «строка, которая содержит номер 19, а не любое число, которое содержит 19 как часть его, например 190». Надеюсь, это правильно, иначе, пожалуйста, исправьте свой вопрос. –
Эй, спасибо за ваше предложение, я буду использовать дочерний стол в будущем. – ninu