SQLs LIKE
- und IN
-Operatoren: Können sie kombiniert werden?
-Operator von LIKE
SQL ist für den Mustervergleich bei Textsuchen von unschätzbarem Wert, aber wenn es um einen vordefinierten Satz von Mustern geht, bietet der IN
-Operator eine verbesserte Lesbarkeit und Flexibilität. Eine direkte Kombination von LIKE
und IN
wird jedoch in Standard-SQL nicht direkt unterstützt.
Warum keine direkte Kombination?
Das Fehlen einer direkten LIKE
- und IN
-Kombination ist auf die Verfügbarkeit einer überlegenen Alternative zurückzuführen: die Volltextsuche (FTS).
Volltextsuche (FTS): Ein besserer Ansatz
Sowohl Oracle als auch SQL Server bieten robuste FTS-Funktionen und nutzen Schlüsselwörter wie CONTAINS
, um innerhalb einer einzigen Abfrage effizient nach mehreren Mustern zu suchen. Dies ersetzt effektiv die Notwendigkeit, LIKE
und IN
zu kombinieren.
Beispiele mit FTS:
Orakel:
<code class="language-sql">WHERE CONTAINS(t.something, 'bla OR foo OR batz', 1) > 0</code>
SQL Server:
<code class="language-sql">WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')</code>
Wichtige Überlegungen für FTS:
t.something
in den Beispielen) erforderlich, damit FTS ordnungsgemäß funktioniert.LIKE
Bedingungen in Bezug auf Geschwindigkeit und Effizienz.Obwohl eine direkte Kombination aus LIKE
und IN
nicht verfügbar ist, bietet FTS eine leistungsfähigere und effizientere Lösung für die Suche nach mehreren Mustern.
Das obige ist der detaillierte Inhalt vonKann ich die SQL-Operatoren „LIKE' und „IN' ohne Unterabfragen kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!