我想从数据库字段中搜索多个值。下面是我的问题。
SELECT * FROM `tablename` WHERE FIND_IN_SET('12,13,15,15',category_id)
我如何寻找它不为我工作。
lqfhib0f1#
FIND_IN_SET() 只能用于在逗号分隔的列表中搜索单个值,它不适用于两个列表。您需要为每个值分别调用它。
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)
1条答案
按热度按时间lqfhib0f1#
FIND_IN_SET()
只能用于在逗号分隔的列表中搜索单个值,它不适用于两个列表。您需要为每个值分别调用它。
最好规范化您的模式,而不是使用逗号分隔的列表。如果使用类别ID创建多对多表,可以执行以下操作: