|
|
|
| Есть поле categories в котором хранится id категорий через запятую ( пример 2,7,10,11,25).
То что касается моего примера то в таблице имеется два поля у одного значение (1) а у второго (5,6). C базы надо выбрать те поля у кторых имеется id равный 1 или же 6. Я делаю следующим образом но что то не работает:
SELECT * FROM mytable WHERE (1 IN (categories) OR 6 IN (categories));
|
Результат этого запроса возвращает только первую строку. В чём я ошибаюсь? Как мне сделать чтоб запрос работал как мне нужно (т.е возвращал бы 2 строки). Заранее всех благодарю. | |
|
|
|
|
|
|
|
для: jeans1986
(16.05.2008 в 10:06)
| | Хм... вообще-то такой синтаксис не поддерживается, когда скаляр в левой части оператора IN... В этом легко убедиться, попытавшись выполнить запрос
SELECT * FROM mytable WHERE 6 IN (categories));
|
Тут вероятно просто не до конца анализатор разбирает SQL-запрос. | |
|
|
|
|
|
|
|
для: jeans1986
(16.05.2008 в 10:06)
| | Попробуйте функцию FIND_IN_SET() .
SELECT * FROM mytable WHERE FIND_IN_SET(1,categories) ....
|
Хотя вообще-то данные в таблицах так не хранят. | |
|
|
|