使用逗号分隔列表在列中查找逗号分隔值

时间:2019-02-13 11:45:32

标签: mysql sql mysql-5.7 find-in-set

我有一列item_id_list,其ID以逗号分隔,例如:

enter image description here

我可以使用FIND_IN_SET()这样搜索它们:

SELECT * FROM task_detail WHERE FIND_IN_SET('21', item_id_list)

但是我需要检查该行中是否确实存在多个ID,但是无法按照文档中的说明添加另一个ID进行搜索。

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_find-in-set

  

如果第一个参数包含一个   逗号(,)字符。

SELECT * FROM task_detail WHERE FIND_IN_SET('21, 79', item_id_list)

在不更改表结构的情况下,如何解决此问题?现在,按ID编号循环FIND_IN_SET()是解决方案。

1 个答案:

答案 0 :(得分:3)

您可以将OR与find_in_set一起使用

    SELECT * FROM task_detail 
    WHERE FIND_IN_SET('21', item_id_list)
    OR  FIND_IN_SET('79', item_id_list)