Heim >Datenbank >MySQL-Tutorial >Wie kann ich die IN-Klausel verwenden, um mehrere Spalten in SQL abzufragen?
Abfragen mehrerer Spalten in der IN-Klausel in SQL
Beim Abfragen einer Datenbanktabelle basierend auf einer Reihe von Werten für eine bestimmte Spalte wird die Die IN-Klausel ist eine praktische Option. Beim Umgang mit mehreren Spalten wird die IN-Klausel jedoch unbrauchbar.
Um diese Herausforderung zu meistern, verwendet der übliche Ansatz Joins oder die EXISTS-Klausel. Diese Methoden erfordern jedoch, dass sowohl die Haupttabelle als auch die Suchdaten in der Datenbank vorhanden sind.
Stellen Sie sich einen Anwendungsfall vor, bei dem Sie über eine Benutzertabelle mit Spalten (Vorname, Nachname, Stadt) verfügen und dies auch tun müssen Rufen Sie die Städte für eine Liste von (Vorname, Nachname)-Tupeln ab. Es ergeben sich zwei mögliche Lösungen:
Lösung 1:
Erstellen Sie eine lange SELECT-Abfrage mit ODER-Bedingungen:
SELECT city FROM user WHERE (firstName=x and lastName=y) or (firstName=a and lastName=b) or ...
Lösung 2:
Erstellen Sie eine Staging-Tabelle mit allen Werten für Vorname und Nachname und führen Sie a aus Verknüpfung zwischen der Benutzertabelle und der Staging-Tabelle.
Alternative Lösung:
Glücklicherweise gibt es eine einfache Möglichkeit, mehrere Spalten mithilfe der IN-Klausel abzufragen:
SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
Sqlfiddle-Demonstration:
[Sqlfiddle Demo](
Diese Lösung behebt effektiv das Problem der Abfrage mehrerer Spalten in der IN-Klausel, ohne auf Joins oder die EXISTS-Klausel zurückzugreifen. Es bietet einen effizienten und präzisen Ansatz zum Abrufen der gewünschten Daten.
Das obige ist der detaillierte Inhalt vonWie kann ich die IN-Klausel verwenden, um mehrere Spalten in SQL abzufragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!