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.

WHERE-Klausel in MySQL
WHERE-Klausel in MySQL

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 email
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.

Schauen wir uns nun ein praktisches Beispiel an: Angenommen, wir mรถchten eine Liste aller Filme in Kategorie 2 erhalten, die im Jahr 2008 verรถffentlicht wurden. Um dies zu erreichen, verwenden wir das unten gezeigte Skript.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Ausfรผhren des obigen Skripts in MySQL Workbench gegen โ€žmyflixdbโ€œ erzeugt folgende Ergebnisse.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

WHERE-Klausel kombiniert mit โ€“ OR LOGISCH OperaDo.

Die WHERE-Klausel wird in Verbindung mit dem OR-Operator nur ausgefรผhrt, wenn einige oder alle angegebenen Filterkriterien erfรผllt sind.
Das folgende Skript ruft alle Filme der Kategorie 1 oder 2 ab.
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Ausfรผhren des obigen Skripts in MySQL Workbench gegen โ€žmyflixdbโ€œ erzeugt folgende Ergebnisse.
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)

Das WO in MySQL Wenn die Klausel zusammen mit dem Schlรผsselwort IN verwendet wird, wirkt sie sich nur auf die Zeilen aus, deren Werte mit der im Schlรผsselwort IN bereitgestellten Werteliste รผbereinstimmen. Der MySQL Die IN-Anweisung trรคgt dazu bei, die Anzahl der OR-Klauseln zu reduzieren, die Sie mรถglicherweise verwenden mรผssen.
Folgende MySQL Die WHERE IN-Abfrage liefert Zeilen, in denen member_number entweder 1, 2 oder 3 ist
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 email
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)

Wenn die WHERE-Klausel zusammen mit dem Schlรผsselwort NOT IN verwendet wird, wirkt sie sich NICHT auf die Zeilen aus, deren Werte mit der im Schlรผsselwort NOT IN bereitgestellten Werteliste รผbereinstimmen.
Die folgende Abfrage gibt Zeilen aus, bei denen die Mitgliedschaftsnummer NICHT 1, 2 oder 3 ist
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 email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

WHERE-Klausel kombiniert mit โ€“ VERGLEICH Operatoren

Die Vergleichsoperatoren kleiner als (), gleich (=), ungleich () kรถnnen mit der WHERE-Klausel verwendet werden

= Gleich

Das folgende Skript ruft alle weiblichen Mitglieder aus der Mitgliedertabelle unter Verwendung des Vergleichsoperators โ€žGleichโ€œ ab.
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 email
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

Das folgende Skript ruft alle Zahlungen รผber 2,000 aus der Zahlungstabelle ab.
SELECT * FROM `zahlungen` WHERE `amount_paid` > 2000;
Ausfรผhren des obigen Skripts in MySQL Workbench gegen โ€žmyflixdbโ€œ erzeugt folgende Ergebnisse.
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

Das folgende Skript ruft alle Filme ab, deren Kategorie-ID ungleich 1 ist.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Ausfรผhren des obigen Skripts in MySQL Workbench gegen โ€žmyflixdbโ€œ erzeugt folgende Ergebnisse.
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

Nehmen wir an, wir mรถchten eine Liste der ausgeliehenen Filme erhalten, die am 25 nicht fristgerecht zurรผckgegeben wurden. Um dies zu erreichen, kรถnnen wir die SQL WHERE-Anweisungsklausel zusammen mit dem Kleiner-als-Vergleichsoperator und dem logischen AND-Operator verwenden.
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

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: