Heim >Datenbank >MySQL-Tutorial >Wie kann ich Tupel in der „IN'-Klausel von SQL effizient vergleichen?
Bei der Arbeit mit komplexen WHERE-Klauseln ist es oft notwendig, ein Feld oder eine Reihe von Feldern mit einer Liste von Werten zu vergleichen. Beim Vergleich von Tupeln stehen mehrere Optionen zur Verfügung.
Die IN-Klausel mit hartcodierten Werten
Ein Ansatz besteht darin, hartcodierte Werte innerhalb der IN-Klausel zu verwenden. Dies kann jedoch bei großen Tabellen ineffizient sein, da jeder Datensatz eine Zeichenfolgenverkettung und -konvertierung erfordert.
Verwendung von VALUE-Klauseln (Standard-SQL)
Eine effizientere Option für Standard SQL-92-Datenbanken verwenden VALUES-Klauseln innerhalb des IN-Operators. Dazu gehört das Einschließen der Tupelliste in Klammern und das Hinzufügen des Schlüsselworts VALUES.
SELECT * FROM mytable WHERE (group_id, group_type) IN ( VALUES ('1234-567', 2), ('4321-765', 3), ('1111-222', 5) );
Datenbankkompatibilität
Es ist wichtig zu beachten, dass diese Syntax nicht von allen SQL-Anweisungen unterstützt wird Produkte. Ab SQL Server 2022 gilt diese Funktion als ungeplant. PostgreSQL und SQLite unterstützen diese Syntax jedoch.
Das obige ist der detaillierte Inhalt vonWie kann ich Tupel in der „IN'-Klausel von SQL effizient vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!