SQL Server 2005: использование оператора OR с оператором LIKE - PullRequest
4 голосов
/ 02 ноября 2011

Как я могу использовать оператор LIKE с оператором OR в SQL Server 2005? Например:

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 ]

14 голосов
/ 02 ноября 2011
select * 
from table where 
column_name like '%boo%' 
or column_name like '%bar%'  

Вам необходимо повторить то, на чем проверяется состояние.В этом случае вам нужно повторить column_name во втором условном предложении like.

like или любой условный тест не сохраняется из предыдущего оператора / теста.

8 голосов
/ 02 ноября 2011

Вы полностью изменили значение вашего вопроса при редактировании, что не очень хорошая вещь!

В вашем модифицированном примере '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%')
0 голосов
/ 02 апреля 2016

Простое и простое использование sql regexp:

select * from <table> where col_name = 'VAL-QWE' AND scenario REGEXP 'xxx|yyy';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...