Pergunta

Esta questão já tem uma resposta aqui:

É possível combinar LIKE e IN em um SQL Server-consulta?

Assim, que esta consulta

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

encontra qualquer uma destas partidas possíveis:

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

etc ...

Foi útil?

Solução

Com efeito, a declaração IN cria uma série de declarações OU ... então

SELECT * FROM table WHERE column IN (1, 2, 3)

É efetivamente

SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3

E, infelizmente, esse é o caminho que você vai ter que levar com as suas declarações como

SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'

Outras dicas

Eu sei que este é antiga, mas eu tenho uma espécie de solução de trabalho

SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'

Você pode expandi-lo ainda mais com a sua cláusula where etc. Eu só respondeu isto porque isto é o que eu estava procurando e eu tive que descobrir uma maneira de fazê-lo.

Uma outra opção seria usar algo como isto

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

Não, você terá que usar OR para combinar suas declarações LIKE:

SELECT 
   * 
FROM 
   table
WHERE 
   column LIKE 'Text%' OR 
   column LIKE 'Link%' OR 
   column LIKE 'Hello%' OR
   column LIKE '%World%'

Você já olhou para Full-Text Search ?

Você precisa de várias cláusulas COMO conectadas por OR.

SELECT * FROM table WHERE 
column LIKE 'Text%' OR 
column LIKE 'Link%' OR 
column LIKE 'Hello%' OR 
column LIKE '%World%' OR 

Não, MSSQL não permite tais consultas. Você deve usar col LIKE '...' OR col LIKE '...' etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top