Объединение "LIKE" и " IN " для SQL Server [дубликат]
этот вопрос уже есть ответ здесь:
- есть ли комбинация "LIKE" и " IN " в SQL? 21 ответов
возможно ли объединить LIKE
и IN
В SQL Server-запрос?
так, что этот запрос
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
находит любой из этих возможных спички:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
etc...
6 ответов
эффективно оператор IN создает ряд операторов OR... так что
SELECT * FROM table WHERE column IN (1, 2, 3)
эффективно
SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3
и, к сожалению, это маршрут, который вам придется взять с вашими подобными заявлениями
SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
Я знаю, что это старый, но у меня есть своего рода рабочее решение
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
вы можете расширить его дальше с помощью предложения where и т. д. Я ответил только потому, что это то, что я искал, и я должен был найти способ сделать это.
еще один вариант-использовать что-то вроде этого
SELECT *
FROM table t INNER JOIN
(
SELECT 'Text%' Col
UNION SELECT 'Link%'
UNION SELECT 'Hello%'
UNION SELECT '%World%'
) List ON t.COLUMN LIKE List.Col
нет, вам придется использовать OR
объединить свой LIKE
отчетность:
SELECT
*
FROM
table
WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%'
вы смотрели Полнотекстовый Поиск?
вам нужно несколько подобных предложений, связанных с OR.
SELECT * FROM table WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%' OR