выбор с IN дает неправильный результат

Полевые редакторы value '3,2,4'

SQL заявление

SELECT * FROM `table` where '3' in (editors)

результат 1 строка = правильно

SELECT * FROM `table` where '2' in (editors)

результат 0 строка = не правильно.

Я предполагаю value '3,2,4' трактуется как строка, как это решить?

1

Решение

Вам придется использовать FIND_IN_SET(), или отвратительная конструкция, как

  WHERE editors='2'
OR editors LIKE '2,%'
OR editors LIKE '%,2,%'
OR editors LIKE '%,2'

Сейчас ваш запрос интерпретируется как

 WHERE '2' IN ('1,2,3')
a.k.a
WHERE '2' = '1,2,3'

и не

 WHERE '2' IN ('1', '2', '3')
a.k.a.
WHERE '2' = '1' OR '2' = '2' OR '2' = '3'

как ты хочешь.
ГДЕ

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]