使用php在mysql中搜索逗号分隔值

时间:2016-05-01 10:01:35

标签: php mysql

我在数据库上运行select查询时遇到了一些问题。一些数据保存为逗号分隔值列表,例如:

表: example_tbl

| Id | standardid | subjectid  |
| 1  | 1,2,3    |  8,10,3  |
| 2  | 7,6,12   |  18,19,2 |
| 3  | 10,11,12 |  4,3,7   |

我想尝试运行的一个例子:

select * from table where standardid in (7,10) and subjectid in (2,3,4)
select * from table  where FIND_IN_SET(7,10,standardid)  and FIND_IN_SET(2,3,4,subjectid)

提前感谢你能告诉我的任何事情。

1 个答案:

答案 0 :(得分:0)

数据库中的逗号分隔值本质上存在问题且效率低下,并且规范化数据库设计要好得多;但如果你检查FIND_IN_SET()的语法,它会在集合中查找单个值,而不匹配集合中的多个值。

要将其用于多个值,您需要多次使用该函数:

result