如何在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'
条件,它只是查看类似的条件?
答案 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';