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 KLICKEN
- โ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 |
