mysql - 具有多个值的 FIND_IN_SET

标签 mysql sql database

<分区>

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

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

我如何搜索它对我不起作用。

enter image description here

最佳答案

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/

相关文章:

mysql 从多列中选择值到单列中

PHP 变量(全局)似乎在下一个代码块中变为 NULL

Mysql 字符搜索与整数搜索

mysql - ArangoDB 自定义排序顺序

mysql - 如何进行多列搜索?

php - PHP 与数据库系统接口(interface)的 PHP 库实际上是如何调用数据库的?

python - 使用 Python 和 mySQL(和 windows 作为操作系统),cursor.execute() 没有返回任何结果,但它正在连接

sql - informix 中的函数添加月份

Mysql查询使用group_concat和表中的自引用id

php - oci_connect() 不会使用对象属性作为参数