MySQL WHERE klauzula: AND, OR, IN, NOT IN Primjer upita
Što je WHERE klauzula u MySQL?
WHERE in MySQL je ključna riječ koja se koristi za određivanje točnih kriterija podataka ili redaka na koje će utjecati navedena SQL izjava. Klauzula WHERE može se koristiti sa SQL naredbama kao što su INSERT, UPDATE, SELECT i DELETE za filtriranje zapisa i izvođenje raznih operacija na podacima.
Pogledali smo kako postaviti upit za podatke iz a baza podataka pomoću naredbe SELECT u prethodnom vodiču. Izjava SELECT vratila je sve rezultate iz upitane tablice baze podataka.
Međutim, to su vremena kada želimo ograničiti rezultate upita na određeni uvjet. Klauzula WHERE u SQL-u je korisna u takvim situacijama.

WHERE klauzula Sintaksa
Osnovna sintaksa za WHERE klauzulu kada se koristi u a MySQL Izjava SELECT WHERE je sljedeća.
SELECT * FROM tableName WHERE condition;
OVDJE
- “SELECT * FROM tableName” je standard SELECT izraz
- "GDJE" je ključna riječ koja ograničava naš set rezultata upita odabira i "stanje" je filtar koji se primjenjuje na rezultate. Filtar može biti raspon, jedna vrijednost ili podupit.
Pogledajmo sada a praktični primjer.
Pretpostavimo da želimo dobiti osobne podatke člana iz tablice članova s obzirom na članski broj 1, upotrijebili bismo sljedeću skriptu da to postignemo.
SELECT * FROM `members` WHERE `membership_number` = 1;
Izvršavanje gornje skripte u MySQL radna tezga na “myflixdb” proizvela bi sljedeće rezultate.
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 klauzula u kombinaciji s – I LOGIČNO Operahumka
Uvjet WHERE u MySQL kada se koristi zajedno s logičkim operatorom AND, izvršava se samo ako su zadovoljeni SVI navedeni kriteriji filtra.
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 klauzula u kombinaciji s – OR LOGIČNO Operahumka
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 klauzula u kombinaciji s – IN Riječ
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Izvršavanje gornje skripte u MySQL workbench protiv "myflixdb" daje sljedeće rezultate.
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 klauzula u kombinaciji s – NE U Riječ
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Izvršavanje gornje skripte u MySQL workbench protiv "myflixdb" daje sljedeće rezultate.
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 klauzula u kombinaciji s – USPOREDBA Operaulagatelji
= Jednak
SELECT * FROM `members` WHERE `gender` = 'Female';
Izvršavanje gornje skripte u MySQL workbench protiv "myflixdb" daje sljedeće rezultate.
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 |
> Veći od
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 |
< > Nije jednako
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 |
rezime
- SQL WHERE klauzula koristi se za ograničavanje broja redaka na koje utječe SELECT, UPDATE ili DELETE upit.
- Uvjet WHERE u SQL-u može se koristiti u kombinaciji s logičkim operatorima kao što su AND i OR, operatorima za usporedbu kao što su ,= itd.
- Kada se koristi s AND logički operator, moraju biti zadovoljeni svi kriteriji.
- Kada se koristi s logičkim operatorom OR, bilo koji od kriterija mora biti ispunjen.
- Ključna riječ IN koristi se za odabir redaka koji odgovaraju popisu vrijednosti.
Mozgalica
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Izvršavanje gornje skripte u MySQL radni stol daje sljedeće rezultate.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |