<分区>
我想从数据库字段中搜索多个值。以下是我的查询。
SELECT * FROM `tablename`
WHERE FIND_IN_SET('12,13,15,15',category_id)
我如何搜索它对我不起作用。
<分区>
我想从数据库字段中搜索多个值。以下是我的查询。
SELECT * FROM `tablename`
WHERE FIND_IN_SET('12,13,15,15',category_id)
我如何搜索它对我不起作用。
最佳答案
FIND_IN_SET()
只能用于在逗号分隔的列表中搜索单个值,它不适用于两个列表。
您需要为每个值分别调用它。
SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)
如果您规范化您的模式而不是使用逗号分隔的列表会更好。如果您使用类别 ID 创建一个多对多表,您可以:
SELECT t1.*
FROM tablename AS t1
JOIN item_categories AS c ON t1.id = c.table_id
WHERE c.category_id IN (12, 13, 15)
关于mysql - 具有多个值的 FIND_IN_SET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51335920/