English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden Sie lernen, wie Sie AND- und OR-Operatoren in der Klausel verwenden, um nach mehreren Bedingungen zu filtern.
Im vorherigen Kapitel haben wir gelernt, wie man mit der WHERE-Klausel nach Einträgen in einer Tabelle sucht, die eine Bedingung erfüllen. Aber manchmal müssen Sie nach mehreren Bedingungen filtern, z.B. Einträge auswählen, die30 Jahren und/Benutzer in der Region USA, die Preise unter100 US-Dollar und Bewertungen größer als4Produkte und vieles mehr.
Der AND-Operator ist ein logischer Operator, der zwei Bedingungen kombiniert und gibt TRUE zurück, wenn beide Bedingungen wahr sind. Er wird normalerweiseSELECT,UPDATE,DELETEvonWHEREDie WHERE-Klausel verwendet den AND-Operator, um Bedingungen zu bilden, um die Ergebnismenge zu filtern.
SELECT column1_name, column2_name, columnN_nameFROM table_nameWHERE condition1 AND condition2;
Lassen Sie uns einige Beispiele betrachten, um zu zeigen, wie es in der Praxis funktioniert.
Angenommen, wir haben in der Datenbank eine alsemployeesenthalten, die folgende Aufzeichnungen haben:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 4 | | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
Der folgende SQL-Befehl wird nur ausemployeesIn der Tabelle werden Gehälter (salary) größer als7000 unddept_idgleich5dieser Mitarbeiter.
SELECT * FROM employees WHERE salary > 7000 AND dept_id = 5;
Nach der Ausführung erhalten Sie die folgenden Ausgaben:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | +--------+--------------+------------+--------+---------+
Genauso, der OR-Operator ist ein logischer Operator, der zwei Bedingungen kombiniert, aber gibt TRUE zurück, wenn mindestens eine der Bedingungen wahr ist.
Nachdem der folgende SQL-Befehl ausgeführt wurde:employeesIn der Tabelle werden Gehälter (salary) größer als7000 oderdept_idgleich5alle Mitarbeiter.
SELECT * FROM employees WHERE salary > 7000 OR dept_id = 5;
Dieses Mal erhalten Sie die folgenden Ausgaben:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | +--------+--------------+------------+--------+---------+
Sie können AND und OR kombinieren, um komplexe Bedingungen zu erstellen.
Die folgenden SQL-Anweisungen geben zurück, dass das Gehalt größer als5000,unddept_idgleich1oder5alle Mitarbeiter.
SELECT * FROM employees WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);
Nach dem Ausführen der obigen Abfrage erhalten Sie den folgenden Ausgabe:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | +--------+--------------+------------+--------+---------+