我有一列有逗号分隔值:
id Column_name
== ==========
1 value1,value2,value3,value5
2 value2,value3,value4
3 value1,value3,value5
4 value1,value2,value4,value5
现在,我想要一个查询来获取value2
或value4
如果可能,我需要如下查询:
SELECT * FROM table_name WHERE FIND_IN_SET('value2,value4',`column_name`)
因此,它将返回ID为1,2,4
的重新编码(包含value2
或value4
)
我有用于从check_box
发送value1,value2 ..etc
的用户表单
如何优化我的选择查询?
答案 0 :(得分: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