Is het mogelijk om LIKE
en IN
te combineren in een SQL Server-Query?
Zodat deze vraag
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
Vindt een van deze mogelijke overeenkomsten:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
enz…
Antwoord 1, autoriteit 100%
In feite creëert het IN-statement een reeks OR-statements… dus
SELECT * FROM table WHERE column IN (1, 2, 3)
Is effectief
SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3
En helaas is dat de route die je moet nemen met je LIKE-statements
SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
Antwoord 2, autoriteit 79%
Ik weet dat dit oud is, maar ik heb een soort werkende oplossing
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
Je kunt het verder uitbreiden met je where-clausule etc.
Ik heb dit alleen beantwoord omdat ik hier naar op zoek was en ik een manier moest bedenken om het te doen.
Antwoord 3, autoriteit 37%
Een andere optie zou zijn om zoiets als dit te gebruiken
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
Antwoord 4, autoriteit 3%
Je hebt meerdere LIKE-clausules nodig die zijn verbonden door OR.
SELECT * FROM table WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%' OR
Antwoord 5, autoriteit 3%
Nee, je moet OR
gebruiken om je LIKE
-statements te combineren:
SELECT
*
FROM
table
WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%'
Heb je Zoeken in volledige tekstbekeken?
Antwoord 6, autoriteit 2%
Nee, MSSQL staat dergelijke zoekopdrachten niet toe. Gebruik col LIKE '...' OR col LIKE '...'
etc.