Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с оператором IN.
 
 автор: jeans1986   (16.05.2008 в 10:06)   письмо автору
 
 

Есть поле 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 строки). Заранее всех благодарю.

   
 
 автор: cheops   (16.05.2008 в 12:00)   письмо автору
 
   для: jeans1986   (16.05.2008 в 10:06)
 

Хм... вообще-то такой синтаксис не поддерживается, когда скаляр в левой части оператора IN... В этом легко убедиться, попытавшись выполнить запрос
SELECT * FROM mytable WHERE 6 IN (categories));

Тут вероятно просто не до конца анализатор разбирает SQL-запрос.

   
 
 автор: Trianon   (16.05.2008 в 17:59)   письмо автору
 
   для: jeans1986   (16.05.2008 в 10:06)
 

Попробуйте функцию FIND_IN_SET() .
SELECT * FROM mytable WHERE FIND_IN_SET(1,categories) ....

Хотя вообще-то данные в таблицах так не хранят.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования