具有多个ORed LIKE的SELECT的替代方案

时间:2012-01-03 17:58:50

标签: mysql select wildcard

我有“SELECT ... WHERE列LIKE'i12.3%'或列LIKE'i4.5%'或列LIKE'i16.7%'或...

我正在寻找像

这样的东西
column in ('i12.3%', 'i4.5%', 'i6,7%')

但“in”不适用于通配符

3 个答案:

答案 0 :(得分:3)

唯一可行的方法是使用regular expressions

WHERE column REGEXP '^i(12\.3|4\.5|6,7)%'

但很多人发现正则表达式难以编写和阅读。

答案 1 :(得分:1)

别无选择。做你在标题中写的内容。

答案 2 :(得分:1)

我认为没有其他选择,我理解由于您的查询有多个OR,因此速度很慢。您可以通过在其中嵌套另一个查询来优化一些事情,该查询首先仅选择与LIKE 'i%'匹配的行。