【发布时间】:2014-05-13 10:35:27
【问题描述】:
我有一列有逗号分隔值:
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 的用户表单
如何优化我的选择查询?
【问题讨论】:
-
您无法优化使用字符串操作来搜索列表的查询。您需要使用联结/关联表正确构建数据。
标签: sql select find-in-set