Объединение "LIKE " и" IN " для SQL Server [дубликат]



этот вопрос уже есть ответ здесь:




  • Существует ли комбинация "LIKE" и " IN " в SQL?

    21 ответов



можно ли совмещать LIKE и IN В SQL Server-Query?



так, что этот запрос



SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')


находит любое из этих возможных совпадений:



Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness


etc...

639   6  

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 

нет, MSSQL не разрешает такие запросы. Вы должны использовать col LIKE '...' OR col LIKE '...' etc.

Comments

    Ничего не найдено.