通过将ID集与字段中逗号分隔的ID匹配来查找记录

时间:2010-11-09 19:32:19

标签: mysql

我有下表:

Videos
ID(Int)  Industries(Varchar)
11       3,5,8
22       5
33       1,3

这是理想的结果:

Search In Industry Field        Found IDs
3                               11,33
1,8                             11,33
5                               11,22
1,5                             11,22,33
3,5,8                           11,22,33
1                               33
8                               11

我正在寻找的是一种提出查询的方法。 find_in_set()是一个很好的函数但不能工作,因为它只能搜索一个id。我也无法改变表格结构。我可以将每个ID放在find_in_set中并使其成为循环,但想知道是否有更好的方法可以实现!

谢谢,

2 个答案:

答案 0 :(得分:1)

您可以将不同的FIND_IN_SET组合在一起吗?

Search In Industry Field 3       
WHERE FIND_IN_SET(3,Industries) 

Search In Industry Field 1,8   
WHERE FIND_IN_SET(1,Industries) 
OR FIND_IN_SET(8,Industries) 

答案 1 :(得分:0)

这可以帮助你:

SELECT * FROM table WHERE industries LIKE '%andthenthevalue%'

然后通过用逗号爆炸搜索输入来搜索每个搜索的值?