MySql: выберите оператор, используя оператор IN - PullRequest
1 голос
/ 07 мая 2009

У меня есть таблица с несколькими полями и одно поле с тремя значениями, разделенными запятыми

 Column 1 Column 2 
    1        1,2,3
    2        2,3,4
    3        6,7,8 

Теперь я хочу запустить SQL-запрос, который выбирает мне строки, значения которых я отправляю в качестве входных данных.

Как и в приведенном выше примере, если я отправлю значение 2 в качестве входа в функцию, он должен вернуть первые 2 строки.

Я попытался использовать оператор IN, но потерпел неудачу, поскольку он не выбирает строки, которые имеют входные данные, которые я посылаю как 2-е или 3-е значение CSV. В этом примере он не возвращает 1-ую строку.

Может кто-нибудь помочь мне с этим?

Заранее спасибо, Акаша

Ответы [ 3 ]

3 голосов
/ 07 мая 2009

Вы можете использовать FIND_IN_SET():

SELECT column1 FROM table WHERE FIND_IN_SET('2', column2) != 0

Оператор IN, по сути, является ярлыком для большого количества операционных:

WHERE column2 = IN ('a', 'b', 'c')

дает тот же результат, что и

WHERE (column2 = 'a' OR column2 = 'b' OR column2 = 'c')
0 голосов
/ 07 мая 2009

Вы должны иметь возможность использовать Like для этого, что-то вроде:

SELECT * FROM tablename WHERE [Column 2] LIKE ("%2%");
0 голосов
/ 07 мая 2009

Если я правильно понял ваш вопрос, то как насчет попытки - выберите Столбец1, Столбец2 из таблицы, где Столбец1 <= </p>

ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...