MySQL WHERE záradék: AND, OR, IN, NOT IN Lekérdezési példa

Mi van a WHERE záradékban MySQL?

WHERE záradék in MySQL A kulcsszó az adatok vagy sorok pontos kritériumainak megadására szolgál, amelyekre a megadott SQL utasítás hatással lesz. A WHERE záradék használható olyan SQL utasításokkal, mint az INSERT, UPDATE, SELECT és DELETE a rekordok szűrésére és különféle műveletek végrehajtására az adatokon.

Megnéztük, hogyan lehet adatokat lekérdezni a adatbázis az előző oktatóanyag SELECT utasításának használatával. A SELECT utasítás az összes eredményt visszaadta a lekérdezett adatbázistáblából.

Ezek azonban olyan időszakok, amikor a lekérdezés eredményeit egy meghatározott feltételre szeretnénk korlátozni. Az SQL WHERE záradéka jól jön ilyen helyzetekben.

WHERE kitétel benne MySQL
WHERE kitétel benne MySQL

WHERE záradék Szintaxis

A WHERE záradék alapvető szintaxisa a MySQL A SELECT WHERE utasítás a következő.

SELECT * FROM tableName WHERE condition;

ITT

  • "SELECT * FROM tableName" a szabvány SELECT utasítás
  • "AHOL" a kulcsszó, amely korlátozza a kiválasztott lekérdezés eredménykészletét és "feltétel" az eredményekre alkalmazandó szűrő. A szűrő lehet tartomány, egyetlen érték vagy allekérdezés.

Nézzük most a gyakorlati példa.

Tegyük fel, hogy egy tag személyes adatait szeretnénk lekérni az 1-es számú tagsági táblázatból, akkor ezt a következő szkriptet használjuk.

SELECT * FROM `members` WHERE `membership_number` = 1;

A fenti szkript végrehajtása MySQL munkapad a „myflixdb” a következő eredményeket produkálja.

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 záradék a – ÉS LOGIKUS Operator

A WHERE állapot MySQL az ÉS logikai operátorral együtt használva csak akkor kerül végrehajtásra, ha az ÖSSZES megadott szűrőfeltétel teljesül.

Lássunk most egy gyakorlati példát – Tegyük fel, hogy listát szeretnénk kapni a 2. kategóriába tartozó, 2008-ban bemutatott filmekről, akkor az alábbi forgatókönyvet használjuk ennek eléréséhez.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
A fenti szkript végrehajtása MySQL munkapad a „myflixdb”-vel szemben a következő eredményeket produkálja.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

WHERE záradék a – OR LOGIKUS Operator

A WHERE záradék az OR operátorral együtt használva csak akkor kerül végrehajtásra, ha a megadott szűrőfeltételek bármelyike ​​vagy az egész teljesül.
A következő forgatókönyv az 1. vagy a 2. kategóriába tartozó összes filmet megkapja
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
A fenti szkript végrehajtása MySQL munkapad a „myflixdb”-vel szemben a következő eredményeket produkálja.
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 záradék a – IN Kulcsszó

A HOL bent MySQL Az IN kulcsszóval együtt használva csak azokat a sorokat érinti, amelyek értéke megegyezik az IN kulcsszóban megadott értéklistával. A MySQL Az IN utasítás segít csökkenteni az esetleg használandó VAGY záradékok számát.
A következő MySQL A WHERE IN lekérdezés olyan sorokat ad, ahol a tagsági_szám 1, 2 vagy 3
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

A fenti szkript végrehajtása MySQL munkapad a „myflixdb”-vel szemben a következő eredményeket produkálja.

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 záradék a – NEM BENT Kulcsszó

A WHERE záradék a NOT IN kulcsszóval együtt használva NEM érinti azokat a sorokat, amelyek értéke megegyezik a NOT IN kulcsszóban megadott értéklistával.
A következő lekérdezés olyan sorokat ad, ahol a tagsági_szám NEM 1, 2 vagy 3
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

A fenti szkript végrehajtása MySQL munkapad a „myflixdb”-vel szemben a következő eredményeket produkálja.

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 záradék a – ÖSSZEHASONLÍTÁS Operatorzok

A kisebb mint (), egyenlő (=), nem egyenlő () összehasonlító operátorok használhatók a WHERE záradékkal

= Egyenlő

A következő szkript lekéri az összes női tagot a tagok táblájából az egyenlő összehasonlítás operátor használatával.
SELECT * FROM `members` WHERE `gender` = 'Female';

A fenti szkript végrehajtása MySQL munkapad a „myflixdb”-vel szemben a következő eredményeket produkálja.

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

> Nagyobb, mint

A következő szkript lekéri a 2,000-nél nagyobb kifizetéseket a fizetési táblázatból.
SELECT * FROM `kifizetések` WHERE `kifizetett_összeg` > 2000;
A fenti szkript végrehajtása MySQL munkapad a „myflixdb”-vel szemben a következő eredményeket produkálja.
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

< > Nem egyenlő

A következő forgatókönyv megkapja az összes olyan filmet, amelynek kategóriaazonosítója nem 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
A fenti szkript végrehajtása MySQL munkapad a „myflixdb”-vel szemben a következő eredményeket produkálja.
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

Összegzésként

  • Az SQL WHERE záradék arra szolgál, hogy korlátozza a SELECT, UPDATE, ill. Lekérdezés TÖRLÉSE.
  • A WHERE feltétel az SQL-ben használható logikai operátorokkal, például AND és OR, összehasonlító operátorokkal, például ,= stb.
  • Ha az AND gombbal használjuk logikai operátor, minden kritériumnak meg kell felelnie.
  • A VAGY logikai operátorral együtt használva bármelyik feltételnek teljesülnie kell.
  • Az IN kulcsszó az értéklistának megfelelő sorok kiválasztására szolgál.

Összerakós játékaik

Tegyük fel, hogy szeretnénk kapni egy listát azokról a kölcsönzött filmekről, amelyeket nem küldtek vissza időben 25. Ennek eléréséhez használhatjuk az SQL WHERE utasítási záradékot a less than összehasonlító operátorral és az AND logikai operátorral együtt.
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;

A fenti szkript végrehajtása MySQL munkapad a következő eredményeket adja.

reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0