Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Вопрос по оператору IN() (nazar-pc) 06/02/2012 - 02:03:31
      Re: Вопрос по оператору IN() (Akina) 06/02/2012 - 11:02:21

> Original message text:
> From: nazar-pc - 06/02/2012 - 02:03:31
> Subject:Вопрос по оператору IN()
> -----------------
> Есть таблица, в одном из столбцов которой хранятся числа через запятую, то есть "1,2,3".
> Мне нужно сделать выборку по этому полю, проверив совпадения числа с одним из тех, которые в списке.
> Пробовал так:
> SELECT * FROM `table` WHERE 2 IN (`column`)
>
> Но находит только тогда, когда совпадает первой число (в данном примере это 1, а иначе ничего не находит).
> Как мне организовать такую выборку с минимальными затратами на обработку, ибо выборка будет идти по таблице пользователей, количество которых будет со временем.
>


From: Akina - 06/02/2012 - 11:02:21
Subject:Вопрос по оператору IN()
-----------------
Теоретически можно разве что так:

WHERE CONCAT(',', `column`, ',') LIKE '%,2,%'

Однако неверен сам подход - хранение списка значений в одном поле. Рекомендую перейти на классическую организацию связи много-ко-много с промежуточной связующей таблицей.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41021



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |