Kombinieren von LIKE und IN für erweiterte SQL-Abfragen
In SQL wird der LIKE-Operator häufig für den Mustervergleich verwendet, während der IN-Operator dies ermöglicht uns, einen Wert mit einer Liste spezifischer Werte abzugleichen. Obwohl diese Operatoren unterschiedlichen Zwecken dienen, ist es möglich, sie zu kombinieren, um leistungsfähigere Abfragen zu erstellen.
Betrachten wir das folgende Szenario: Sie haben eine Tabelle mit einer Spalte namens „company_id“ und möchten alle Zeilen auswählen, in denen die „company_id“ beginnt mit bestimmten Zeichenfolgen wie „M510“, „M615“, „M515“ und „M612“.
Ein Ansatz könnte darin bestehen, den LIKE-Operator wie folgt zu verwenden:
SELECT * FROM tablename WHERE company_id LIKE 'M510%'
Dies stimmt jedoch nur mit Zeilen überein, die genau mit „M510“ beginnen. Um mehrere Zeichenfolgen abzugleichen, müssten Sie mehrere Abfragen erstellen.
Teilzeichenfolge mit IN verwenden
Eine effizientere Lösung besteht darin, eine Teilzeichenfolge mit dem IN-Operator zu verwenden. Die Funktion SUBSTRING() extrahiert eine angegebene Anzahl von Zeichen aus einer Zeichenfolge, beginnend an einer bestimmten Position.
Für unser Szenario können wir die folgende Abfrage verwenden:
SELECT * FROM tablename WHERE SUBSTRING(company_id, 1, 4) IN ('M510', 'M615', 'M515', 'M612')
Diese Abfrage extrahiert die ersten 4 Zeichen aus der Spalte „company_id“ und prüft, ob Es ist in der in der IN-Klausel angegebenen Werteliste vorhanden. Durch die Kombination des Teilstrings mit IN können wir den gewünschten Mustervergleich erreichen, ohne ein Array von Strings durchlaufen zu müssen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3