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

sim*_*ula 4 sql sql-server sql-server-2005

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

SELECT * 
  FROM table 
 WHERE column_name LIKE '%boo%' OR '%bar%' 
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用!

编辑1:回复第一个答案:

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

select * 
from <table> 
where col_name = 'VAL-QWE' 
      AND scenario like '%xxx%'
      OR scenario like '%yyy%'
Run Code Online (Sandbox Code Playgroud)

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

小智 15

select * 
from table where 
column_name like '%boo%' 
or column_name like '%bar%'  
Run Code Online (Sandbox Code Playgroud)

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

like或任何条件测试不从前面的语句/测试持续.

  • +1:利用[全文搜索](http://msdn.microsoft.com/en-us/library/ms142571.aspx)会表现更好. (2认同)

dst*_*ele 8

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

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

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

但我认为你想要的是

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