Объединение "LIKE" и "IN" для SQL Server
Можно ли комбинировать LIKE
и IN
в SQL Server-Query?
Итак, этот запрос
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
Находит любое из этих возможных совпадений:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
и т.д...
Ответы
Ответ 1
Фактически, оператор IN создает серию операторов OR... поэтому
SELECT * FROM table WHERE column IN (1, 2, 3)
Эффективно
SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3
И, к сожалению, это маршрут, который вам нужно будет выполнять с вашими заявлениями LIKE.
SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
Ответ 2
Я знаю, что это старо, но я иду своего рода рабочее решение
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
Вы можете расширить его с помощью своего предложения where и т.д.
Я только ответил, потому что это то, что искали, и должен был выяснить способ сделать это.
Ответ 3
Еще один вариант - использовать что-то вроде этого
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
Ответ 4
Вам нужно несколько предложений LIKE, связанных OR.
SELECT * FROM table WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%' OR
Ответ 5
Нет, вам нужно будет использовать OR
для объединения ваших операторов LIKE
:
SELECT
*
FROM
table
WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%'
Вы просмотрели Полнотекстовый поиск?
Ответ 6
Нет, MSSQL не разрешает такие запросы. Вы должны использовать col LIKE '...' OR col LIKE '...'
и т.д.