Найти значение через запятую в столбце, используя список через запятую
У меня есть колонка item_id_list
с разделенным запятыми идентификатором, таким как это:
Я могу искать их с помощью FIND_IN_SET()
такие как это:
SELECT * FROM task_detail WHERE FIND_IN_SET('21', item_id_list)
но мне нужно проверить, существует ли несколько строк в строке, но добавление другого идентификатора для поиска не будет работать, как указано в документации.
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
Эта функция не работает должным образом, если первый аргумент содержит запятую (,).
SELECT * FROM task_detail WHERE FIND_IN_SET('21, 79', item_id_list)
Не меняя структуру таблицы, как мне решить эту проблему? Прямо сейчас зацикливание FIND_IN_SET()
по номеру id это решение.
1 ответ
Решение
Вы можете использовать ИЛИ с find_in_set
SELECT * FROM task_detail
WHERE FIND_IN_SET('21', item_id_list)
OR FIND_IN_SET('79', item_id_list)