多个查找集

时间:2013-09-01 09:51:16

标签: mysql

对于集合中的多个查找,我使用:

... 
FROM Table1 a, Table2 b
WHERE CONCAT(',',REPLACE(a.options,',',',,'),',') LIKE CONCAT('%,',REPLACE(b.options,',',',%,'),',%')

a.options = '1,2,3,4,5' VARCHAR()  
b.options = '2,5,6,9,10' VARCHAR()

a.optionsb.options中的数字始终按升序排序。 结果:

WHERE ',1,,2,,3,,4,,5,' LIKE '%,2,%,5,%,6,%,9,%,10,%'

效果很好,但速度不快。 如何更快地进行此查询?

1 个答案:

答案 0 :(得分:0)

只要有一些数据可以讨论,SQL集上的字符串操作就会很慢。无论如何。您应该重新考虑为什么需要这样做或更改表结构。 我解决了一个这样的问题,就是让一个计算列在插入上完成所有预先计算,然后保持不变。所以我在计算列上进行了查询。