MySQL WHERE-Klausel: AND, OR, IN, NOT IN Abfragebeispiel
Was ist die WHERE-Klausel? MySQL?
WHERE-Klausel in MySQL ist ein Schlüsselwort, mit dem die genauen Kriterien der Daten oder Zeilen angegeben werden, die von der angegebenen SQL-Anweisung betroffen sind. Die WHERE-Klausel kann mit SQL-Anweisungen wie INSERT, UPDATE, SELECT und DELETE verwendet werden, um Datensätze zu filtern und verschiedene Operationen an den Daten durchzuführen.
Wir haben uns angeschaut, wie man Daten von a abfragt Datenbank Verwenden der SELECT-Anweisung im vorherigen Tutorial. Die SELECT-Anweisung gab alle Ergebnisse aus der abgefragten Datenbanktabelle zurück.
Dies sind jedoch Zeiten, in denen wir die Abfrageergebnisse auf eine bestimmte Bedingung beschränken möchten. In solchen Situationen ist die WHERE-Klausel in SQL hilfreich.

Syntax der WHERE-Klausel
Die grundlegende Syntax für die WHERE-Klausel bei Verwendung in a MySQL Die SELECT WHERE-Anweisung lautet wie folgt.
SELECT * FROM tableName WHERE condition;
HIER
- „SELECT * FROM tableName“ ist der Standard SELECT-Anweisung
- "WO" ist das Schlüsselwort, das unsere ausgewählte Abfrageergebnismenge einschränkt und "Zustand" ist der Filter, der auf die Ergebnisse angewendet werden soll. Der Filter kann ein Bereich, ein Einzelwert oder eine Unterabfrage sein.
Schauen wir uns nun a an Praxisbeispiel.
Angenommen, wir möchten die persönlichen Daten eines Mitglieds aus der Mitgliedertabelle mit der angegebenen Mitgliedsnummer 1 abrufen. In diesem Fall würden wir das folgende Skript verwenden.
SELECT * FROM `members` WHERE `membership_number` = 1;
Ausführen des obigen Skripts in MySQL Werkbank auf „myflixdb“ würde die folgenden Ergebnisse liefern.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
WHERE-Klausel kombiniert mit – UND LOGISCH OperaDo.
Die WHERE-Bedingung in MySQL wird in Verbindung mit dem logischen Operator „UND“ nur ausgeführt, wenn ALLE angegebenen Filterkriterien erfüllt sind.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
WHERE-Klausel kombiniert mit – OR LOGISCH OperaDo.
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
WHERE-Klausel kombiniert mit – IN Stichwort (Keyword)
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Ausführen des obigen Skripts in MySQL Workbench gegen „myflixdb“ erzeugt folgende Ergebnisse.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
WHERE-Klausel kombiniert mit – NICHT IN Stichwort (Keyword)
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Ausführen des obigen Skripts in MySQL Workbench gegen „myflixdb“ erzeugt folgende Ergebnisse.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
WHERE-Klausel kombiniert mit – VERGLEICH Operatoren
= Gleich
SELECT * FROM `members` WHERE `gender` = 'Female';
Ausführen des obigen Skripts in MySQL Workbench gegen „myflixdb“ erzeugt folgende Ergebnisse.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
> Größer als
payment_id | membership_number | payment_date | description | amount_paid | external_reference_number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Movie rental payment | 2500 | 11 |
3 | 3 | 30-07-2012 | Movie rental payment | 6000 | NULL |
< > Nicht gleich
SELECT * FROM `movies` WHERE `category_id`<> 1;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
Zusammenfassung
- Die SQL WHERE-Klausel wird verwendet, um die Anzahl der Zeilen zu beschränken, die von einem SELECT, UPDATE oder betroffen sind DELETE-Abfrage.
- Die WHERE-Bedingung in SQL kann in Verbindung mit logischen Operatoren wie AND und OR, Vergleichsoperatoren wie ,= usw. verwendet werden.
- Bei Verwendung mit AND logischer OperatorEs müssen alle Kriterien erfüllt sein.
- Bei Verwendung mit dem logischen „ODER“-Operator muss eines der Kriterien erfüllt sein.
- Das Schlüsselwort IN wird verwendet, um Zeilen auszuwählen, die einer Werteliste entsprechen.
Rätsel
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Ausführen des obigen Skripts in MySQL Workbench liefert die folgenden Ergebnisse.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |