Найти значение через запятую в столбце, используя список через запятую

У меня есть колонка 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)
Другие вопросы по тегам