【发布时间】:2019-06-18 17:08:03
【问题描述】:
我正在尝试从包含逗号分隔字符串的数据库表列中搜索逗号分隔值。
MY DB
id interest status
------------------------
1 1,2,3 1
2 4 1
我的搜索组合包含1,2、3,2、3、1,4 等。任何组合都会出现。
我想显示所有id,其中包含逗号分隔的搜索组合中的任何数字。
例如,搜索1,4 应该返回
id
--
1
2
例如,搜索3,2 应该返回
id
--
1
我尝试过使用IN 和FIND_IN_SET,但它们都没有达到我的效果。有没有其他选择。
SELECT * FROM `tbl_test` WHERE interest IN (3)
以上代码返回空集。
【问题讨论】:
-
不要将值存储为 csv。规范化你的数据库。
-
FIND_IN_SET 帮助您只搜索给定集合中的一个元素,因此搜索多个元素(如“1,2”)将使用 AND 运算符链接。当您必须查找超过 2 个元素时,它可能会变得混乱
标签: mysql