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 u MySQL
WHERE klauzula u MySQL

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

Pogledajmo sada praktičan primjer – pretpostavimo da želimo dobiti popis svih filmova u kategoriji 2 koji su objavljeni 2008., upotrijebili bismo skriptu prikazanu u nastavku da to postignemo.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Izvršavanje gornje skripte u MySQL workbench protiv "myflixdb" daje sljedeće rezultate.
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

Kada se klauzula WHERE koristi zajedno s operatorom OR, izvršava se samo ako je ispunjen bilo koji ili cijeli navedeni kriterij filtra.
Sljedeći scenarij svrstava sve filmove u kategoriju 1 ili kategoriju 2
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Izvršavanje gornje skripte u MySQL workbench protiv "myflixdb" daje sljedeće rezultate.
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č

GDJE u MySQL klauzula, kada se koristi zajedno s ključnom riječi IN, utječe samo na retke čije se vrijednosti podudaraju s popisom vrijednosti navedenih u ključnoj riječi IN. The MySQL IN izjava pomaže smanjiti broj OR klauzula koje ćete možda morati koristiti.
Sljedeće MySQL WHERE IN upit daje retke u kojima je membership_number 1, 2 ili 3
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 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 klauzula u kombinaciji s – NE U Riječ

Kada se klauzula WHERE koristi zajedno s ključnom riječi NOT IN, NE utječe na retke čije se vrijednosti podudaraju s popisom vrijednosti navedenih u ključnoj riječi NOT IN.
Sljedeći upit daje retke u kojima membership_number NIJE 1, 2 ili 3
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 email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

WHERE klauzula u kombinaciji s – USPOREDBA Operaulagatelji

Operatori usporedbe manje od (), jednako (=), nije jednako () mogu se koristiti s klauzulom WHERE

= Jednak

Sljedeća skripta dobiva sve ženske članice iz tablice članova pomoću operatora jednako za usporedbu.
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 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

> Veći od

Sljedeća skripta dobiva sva plaćanja koja su veća od 2,000 iz tablice plaćanja.
SELECT * FROM `uplate` WHERE `amount_paid` > 2000;
Izvršavanje gornje skripte u MySQL workbench protiv "myflixdb" daje sljedeće rezultate.
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

Sljedeća skripta dobiva sve filmove čiji ID kategorije nije 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Izvršavanje gornje skripte u MySQL workbench protiv "myflixdb" daje sljedeće rezultate.
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

Pretpostavimo da želimo dobiti popis iznajmljenih filmova koji nisu vraćeni na vrijeme 25. Možemo koristiti klauzulu naredbe SQL WHERE zajedno s operatorom manje od usporedbe i logičkim operatorom AND da bismo to postigli.
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