Combinaison "LIKE" Et " IN "pour SQL Server [dupliquer]
cette question a déjà une réponse ici:
est-il possible de combiner LIKE
et IN
dans une requête SQL Server?
ainsi, 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...
6 réponses
effectivement, l'énoncé IN crée une série D'énoncés ou... so
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 route que vous aurez à prendre avec vos déclarations similaires
SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
je sais que c'est vieux, mais j'ai eu une sorte de solution de travail
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
vous pouvez l'étendre avec votre clause where etc. J'ai seulement répondu à cela parce que c'est ce que je cherchais et 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 LIKE
déclarations:
SELECT
*
FROM
table
WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%'
avez-vous regardé recherche en texte intégral ?
vous avez besoin de plusieurs clauses similaires relié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.