Ist es möglich, LIKE
und IN
in einer SQL Server-Abfrage zu kombinieren?
Also, dass diese Abfrage
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
Findet eine dieser möglichen Übereinstimmungen:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
usw...
Tatsächlich erstellt die IN-Anweisung eine Reihe von OR-Anweisungen ... also
SELECT * FROM table WHERE column IN (1, 2, 3)
Ist effektiv
SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3
Und leider ist dies der Weg, den Sie mit Ihren LIKE-Anweisungen einschlagen müssen
SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
Ich weiß, das ist alt, aber ich habe eine Art funktionierende Lösung
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
Sie können es mit Ihrer where-Klausel usw. weiter ausbauen. Ich habe dies nur beantwortet, weil ich danach gesucht habe und einen Weg gefunden habe, wie ich das tun kann.
Eine andere Möglichkeit wäre, so etwas zu verwenden
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
Nein, Sie müssen OR
verwenden, um Ihre LIKE
-Anweisungen zu kombinieren:
SELECT
*
FROM
table
WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%'
Haben Sie sich Volltextsuche angesehen?
Sie benötigen mehrere LIKE-Klauseln, die durch OR verbunden sind.
SELECT * FROM table WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%' OR
Nein, MSSQL lässt solche Abfragen nicht zu. Sie sollten col LIKE '...' OR col LIKE '...'
usw. verwenden.