SQL Server 2005:将OR运算符与LIKE运算符一起使用

时间:2011-11-02 02:50:25

标签: sql sql-server sql-server-2005

如何在SQL Server 2005中将LIKE运算符与OR运算符一起使用?例如:

SELECT * 
  FROM table 
 WHERE column_name LIKE '%boo%' OR '%bar%' 

这似乎不起作用!

编辑1 :对第一个答案的回应:

很酷,有效!但我刚刚第一次发现你的订单条件不适合......我想问这是正常的还是我犯了错误?请看下面看看我的意思

select * 
from <table> 
where col_name = 'VAL-QWE' 
      AND scenario like '%xxx%'
      OR scenario like '%yyy%'

如果执行此查询,sql server根本不关心col_name = 'VAL-QWE'条件,它只是查看类似的条件?

3 个答案:

答案 0 :(得分:14)

select * 
from table where 
column_name like '%boo%' 
or column_name like '%bar%'  

您需要重复测试的条件。在这种情况下,您需要在第二个条件column_name子句中重复like

like或任何条件测试不会从之前的语句/测试中保留。

答案 1 :(得分:7)

您的编辑完全改变了问题的含义,而不是一件好事!

在您修改过的示例中,'AND'在'OR'之前进行评估,因此您的sql正在执行以下操作:

select * from <table> where (col_name = 'VAL-QWE' AND scenario like '%xxx%') or scenario like '%yyy%'

但我认为你想要的是

select * from <table> where col_name = 'VAL-QWE' AND (scenario like '%xxx%' or scenario like '%yyy%')

答案 2 :(得分:0)

简单易用sql regexp:

select * from <table> where col_name = 'VAL-QWE' AND scenario REGEXP 'xxx|yyy';