Wenn Sie eine Abfrage für eine Tabelle basierend auf mehreren Spalten mithilfe der IN-Klausel durchführen, wird das Erstellen einer einzelnen Abfrage mit mehreren ODER-Bedingungen mühsam . Stattdessen kann man die folgenden Ansätze nutzen:
Die direkteste Lösung ist die Verwendung der Tupel-Version der IN-Klausel. Wenn beispielsweise die Tabelle „Benutzer“ mit den Spalten „Vorname“, „Nachname“ und „Stadt“ vorhanden ist, würde die Abfrage zum Abrufen von Städten für eine Liste von (Vorname, Nachname)-Tupeln wie folgt lauten:
SELECT City FROM User WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
Eine andere Möglichkeit besteht darin, eine Staging-Tabelle mit allen möglichen Kombinationen (Vorname, Nachname) zu erstellen und dann einen Join zwischen dieser Tabelle und der Benutzertabelle durchzuführen. Diese Methode erfordert jedoch zusätzliche Einrichtung und Wartung, was für große Datenmengen möglicherweise nicht ideal ist.
Für allgemeine Szenarien wird der Tupel-IN-Klausel-Ansatz aufgrund seiner Einfachheit und Flexibilität bevorzugt. Dadurch entfällt die Notwendigkeit einer komplexen Abfrageerstellung oder zusätzlicher Tabellen. Wenn die Suchdaten jedoch außerhalb der Datenbank gespeichert werden, können alternative Methoden wie Joins oder Unterabfragen erforderlich sein.
Das obige ist der detaillierte Inhalt vonWie frage ich mehrere Spalten effizient mit der SQL IN-Klausel ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!