这个问题在这里已有答案:
我有一个用逗号分隔id的列item_id_list
,例如:
我可以使用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()
是解决方案。
你可以使用带有find_in_set的OR
SELECT * FROM task_detail
WHERE FIND_IN_SET('21', item_id_list)
OR FIND_IN_SET('79', item_id_list)