Kombinieren von LIKE
und IN
in SQL: Alternativen zur direkten Kombination
SQLs LIKE
-Operator erleichtert den Mustervergleich, während IN
die Zugehörigkeit zu einer Reihe von Werten prüft. Obwohl keine direkte Kombination verfügbar ist, gibt es effiziente Alternativen für die Verarbeitung mehrerer LIKE
-Bedingungen oder die Kombination von LIKE
mit einer Reihe von Werten.
Die Herausforderung mehrerer LIKE
Bedingungen
Die Verwendung mehrerer OR
-Anweisungen mit LIKE
wird für viele Muster unhandlich und möglicherweise ineffizient:
WHERE something LIKE 'bla%' OR something LIKE '%foo%' OR something LIKE 'batz%'
Volltextsuche: Eine leistungsstarke Lösung
Für Szenarien, die mehrere LIKE
Bedingungen oder eine Kombination aus LIKE
und einer Reihe von Werten erfordern, bietet die Volltextsuche (FTS) einen überlegenen Ansatz. Sowohl Oracle als auch SQL Server bieten FTS-Funktionen.
Oracles FTS-Implementierung
Oracle verwendet das Schlüsselwort CONTAINS
mit dem Operator OR
, um den gewünschten Effekt zu erzielen:
WHERE CONTAINS(t.something, 'bla OR foo OR batz', 1) > 0
FTS-Implementierung von SQL Server
SQL Server verwendet auch CONTAINS
, jedoch mit einer etwas anderen Syntax für den Mustervergleich:
WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')
Wichtiger Hinweis: Für eine optimale FTS-Leistung stellen Sie sicher, dass die relevante Spalte (t.something
in diesen Beispielen) mithilfe eines Volltextindex ordnungsgemäß indiziert ist.
Weiterführende Literatur
Das obige ist der detaillierte Inhalt vonKann SQL die Operatoren „LIKE' und „IN' kombinieren, und wenn nicht, welche Alternativen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!