Выбрать на основе элемента в массиве - PullRequest
0 голосов
/ 17 августа 2011

Я ищу команду mySQL для выбора строк в зависимости от того, содержит ли поле массива определенный элемент с этим массивом.

1 Ответ

0 голосов
/ 17 августа 2011

Не совсем уверен, хотите ли вы найти элемент в массиве, хранящемся в БД, или вы хотите найти все строки, которые соответствуют элементу в массиве.

Для первого (учитывая, что MySQL изначально не поддерживает типы массивов, я предполагаю, что вы что-то делаете для сериализации данных в строковый столбец или тому подобное):

SELECT [columns] FROM [table] WHERE [array_column] LIKE "%{separator}[test_value]{separator}%"; 
e.g. SELECT * FROM my_table WHERE values_list LIKE "%|5|%";

выполнит эту работу (где разделитель - это любой символ, который вы используете для разделения значений, хранящихся в столбце строки - например, с учетом массива [0, 5, 10, 15] и разделителя "|", сериализованная строка будет "| 0 | 5 | 10 | 15 |")

Для второго случая:

SELECT [columns] FROM [table] WHERE [test_column] IN (list, of, some, values);
e.g. SELECT * FROM my_table WHERE my_value IN (0, 5, 10, 15);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...