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

问题描述 投票:1回答:1

这个问题在这里已有答案:

我有一个用逗号分隔id的列item_id_list,例如:

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()是解决方案。

mysql sql mysql-5.7 find-in-set
1个回答
3
投票

你可以使用带有find_in_set的OR

    SELECT * FROM task_detail 
    WHERE FIND_IN_SET('21', item_id_list)
    OR  FIND_IN_SET('79', item_id_list)
© www.soinside.com 2019 - 2024. All rights reserved.