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或任何条件测试不从前面的语句/测试持续.
您通过编辑完全改变了问题的含义,而不是一件好事!
在您的修改示例中,'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)