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 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 | |
---|---|---|---|---|---|---|---|
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.
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 záradék a – OR LOGIKUS Operator
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 záradék a – IN Kulcsszó
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 | |
---|---|---|---|---|---|---|---|
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ó
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 | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
WHERE záradék a – ÖSSZEHASONLÍTÁS Operatorzok
= Egyenlő
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 | |
---|---|---|---|---|---|---|---|
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
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ő
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 |
Ö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
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 |