Verwenden Sie temporäre Tabellen, um mehrere Bedingungen im LIKE-Operator zu verarbeiten
In SQL wird der LIKE-Operator verwendet, um einen Mustervergleich für Zeichenfolgenwerte durchzuführen. Obwohl es möglich ist, mehrere LIKE-Bedingungen mithilfe des OR-Operators zu kombinieren, ist die Verwendung einer temporären Tabelle eine bessere Lösung.
Bedenken Sie die folgende Aussage:
select * from tbl where col like ('ABC%','XYZ%','PQR%');
Diese Anweisung soll alle Zeilen in der TBL-Tabelle abrufen, in denen die Spalte „col“ mit einem beliebigen Muster ABC%, XYZ% oder PQR% übereinstimmt. Obwohl die Verwendung von OR ein effizienter Ansatz ist, kann sie bei einer Vielzahl von Erkrankungen mühsam und ineffizient sein.
Stattdessen können wir eine temporäre Tabelle namens Muster erstellen, um alle Muster zu speichern, die wir abgleichen möchten:
CREATE TEMPORARY TABLE patterns ( pattern VARCHAR(20) ); INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');
Nachdem wir die temporäre Tabelle erstellt haben, können wir sie mithilfe des LIKE-Operators mit der Tabelle tbl verbinden:
SELECT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);
In dieser Abfrage wird die Musterspalte in der Mustertabelle verwendet, um mit der Spalte „col“ in der Tabelle „tbl“ übereinzustimmen. Das Ergebnis ist eine Liste von Zeilen in der Tabelle, die mit einem beliebigen Muster in der Mustertabelle übereinstimmen.
Es ist wichtig zu beachten, dass eine Zeile in der Tabelle, die mit mehreren Mustern übereinstimmt, in den Ergebnissen mehrmals erscheint. Wenn dies nicht gewünscht ist, können Sie den Abfragemodifikator DISTINCT verwenden:
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);
Dadurch wird sichergestellt, dass jede Zeile in der Tabelle nur einmal in den Ergebnissen erscheint, auch wenn sie mit mehreren Mustern übereinstimmt.
Das obige ist der detaillierte Inhalt vonWie kann eine temporäre Tabelle die Effizienz bei der Verwendung mehrerer LIKE-Bedingungen in SQL verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!