我有一列item_id_list
,其ID以逗号分隔,例如:
我可以使用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()
是解决方案。
答案 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)