0

我有一列有逗号分隔的值:

id Column_name
== ==========
1  value1,value2,value3,value5
2  value2,value3,value4
3  value1,value3,value5
4  value1,value2,value4,value5

现在,我想要一个查询来获取所有具有value2OR的记录value4

如果可能的话,我需要如下查询:

SELECT * FROM table_name WHERE FIND_IN_SET('value2,value4',`column_name`) 

因此,它将返回带有 id 的重新编码1,2,4(具有value2or value4

value1,value2 ..etc我有从 check_box发送的用户表单

如何优化我的选择查询?

4

1 回答 1

3

像这样使用它

SELECT * FROM table_name 
WHERE FIND_IN_SET('value2',column_name) > 0
or FIND_IN_SET('value4',column_name) > 0

但是永远,永远,永远不要在一列中存储多个值!

您实际上应该将数据库结构更改为这样的

your_table
----------
id
name
other_columns


values table
------------
your_table_id
value
于 2014-05-13T10:39:25.200 回答