FIND_IN_SET具有多个值 [英] FIND_IN_SET with multiple value

查看:275
本文介绍了FIND_IN_SET具有多个值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从数据库字段中搜索多个值.下面是我的查询.

I want to search multiple values from database field. below is my query.

SELECT * FROM `tablename` 
WHERE FIND_IN_SET('12,13,15,15',category_id) 

我如何搜索对我不起作用的产品.

How i search its not working for me.

推荐答案

FIND_IN_SET()仅可用于搜索以逗号分隔的列表中的单个值,不适用于两个列表.

FIND_IN_SET() can only be used to search for a single value in a comma-separated list, it doesn't work with two lists.

您需要为每个值分别调用它.

You'll need to call it separately for each value.

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的多对多表,则可以执行以下操作:

It would be better if you normalized your schema instead of using comma-separated lists. If you create a many-to-many table with the category IDs, you could do:

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)

这篇关于FIND_IN_SET具有多个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆