Est-il possible de combiner LIKE
et IN
dans une requête SQL Server?
Alors, que cette requête
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
Trouve l'une de ces correspondances possibles:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
etc...
En effet, l’instruction IN crée une série d’énoncés OR ... donc
SELECT * FROM table WHERE column IN (1, 2, 3)
Est effectivement
SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3
Et malheureusement, c’est la voie à suivre avec vos déclarations
SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
Je sais que c'est vieux, mais j'ai une sorte de solution de travail
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
Vous pouvez le développer davantage avec votre clause where, etc. Je n'y ai répondu que parce que c'est ce que je cherchais et que je devais trouver un moyen de le faire.
Une autre option serait d'utiliser quelque chose comme ça
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
Non, vous devrez utiliser OR
pour combiner vos déclarations LIKE
:
SELECT
*
FROM
table
WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%'
Avez-vous consulté recherche en texte intégral ?
Vous avez besoin de plusieurs clauses LIKE connectées par OR.
SELECT * FROM table WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%' OR
Non, MSSQL n'autorise pas de telles requêtes. Vous devez utiliser col LIKE '...' OR col LIKE '...'
etc.