MySQL WHERE klausel: AND, OR, IN, NOT IN Query Example

Lang L: none (table-of-contents):

Anonim

Mis on MySQL-i klausel WHERE?

WHERE lause MySQL-is on märksõna, mida kasutatakse andmete või ridade täpsete kriteeriumide määramiseks, mida määratud SQL-lause mõjutab. Klauslit WHERE saab kasutada SQL-i lausetega nagu INSERT, UPDATE, SELECT ja DELETE kirjete filtreerimiseks ja andmetega mitmesuguste toimingute tegemiseks.

Uurisime, kuidas andmebaasis andmeid pärida, kasutades eelmises õpetuses käsku SELECT. Lausel SELECT tagastati kõik päringu andmebaasi tabeli tulemused.

Need on ajad, mil soovime päringu tulemused piirata määratud tingimusega. SQL-i klausel WHERE on sellistes olukordades mugav.

WHERE klausel MySQL-is

WHERE klausli süntaks

WHERE-lause põhisüntaks, kui seda kasutatakse MySQL SELECT WHERE-lauses, on järgmine.

SELECT * FROM tableName WHERE condition;

SIIN

  • "SELECT * FROM tableName" on standardne SELECT-lause
  • "WHERE" on märksõna, mis piirab meie valitud päringu tulemuste komplekti ja "tingimus" on tulemustele rakendatav filter. Filter võib olla vahemik, üks väärtus või alampäring.

Vaatame nüüd praktilist näidet .

Oletame, et soovime saada liikme isiklikke andmeid liikmete numbrilt 1 antud liikmete tabelist, kasutaksime selle saavutamiseks järgmist skripti.

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

Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb-l" annab järgmised tulemused.

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it.

WHERE klausel koos operaatoriga AND AND LOGICAL

MySQL-i tingimus WHERE, kui seda kasutatakse koos loogilise operaatoriga AND, täidetakse ainult siis, kui KÕIK määratud filtrikriteeriumid on täidetud. Vaatame nüüd praktilist näidet - Oletame, et tahame saada nimekirja kõigist 2. kategooria filmidest, mis ilmusid 2008. aastal, kasutaksime selle saavutamiseks allpool näidatud skripti.

SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;

Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb" vastu annab järgmised tulemused.

 
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

WHERE klausel koos - OR LOGICAL Operaatoriga

WHERE-klausel, kui seda kasutatakse koos operaatoriga OR, täidetakse ainult siis, kui kõik määratud filtri kriteeriumid või kogu see on täidetud. Järgmine skript saab kõik 1. või 2. kategooria filmid
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;

Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb" vastu annab järgmised tulemused.

 
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 koos märksõnaga - IN

Klausel WHERE MySQL-is mõjutab koos märksõnaga IN ainult ridu, mille väärtused vastavad IN-märksõnas toodud väärtuste loendile. MySQL IN-lause aitab vähendada VÕI-klauslite arvu, mida peate võib-olla kasutama. Järgmine päring MySQL WHERE IN annab ridu, kus liikmesuse number on kas 1, 2 või 3
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb" vastu annab järgmised tulemused.

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.

WHERE klausel koos - NOT IN märksõnaga

Klausel WHERE, kui seda kasutatakse koos märksõnaga NOT IN, EI mõjuta ridu, mille väärtused vastavad märksõnas NOT IN toodud väärtuste loendile. Järgmine päring annab ridu, kus liikmeskonna number EI ole 1, 2 ega 3
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb" vastu annab järgmised tulemused.

 
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 koos operaatoritega - VÕRDLUS

Väikseimat (), võrdset (=), mitte võrdset () võrdlusoperaatorit saab kasutada WHERE klausliga

= Võrdne

Järgmine skript saab võrdlusoperaatori abil kõik naisliikmed liikmete tabelist.
SELECT * FROM `members` WHERE `gender` = 'Female';

Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb" vastu annab järgmised tulemused.

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

> Suurem kui

Järgmine skript saab maksetabelist kõik maksed, mis on suuremad kui 2000. VALI * FROM "maksetest" WHERE "summa_makstud"> 2000; Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb" vastu annab järgmised tulemused.
 
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

<> Pole võrdne

Järgmine skript saab kõik filmid, mille kategooria ID pole 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Ülaltoodud skripti käivitamine MySQL-i töölaual "myflixdb" vastu annab järgmised tulemused.
 
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

Kokkuvõte

  • Klauslit SQL WHERE kasutatakse ridade arvu piiramiseks, mida päring SELECT, UPDATE või DELETE mõjutab.
  • SQL-i tingimust WHERE saab kasutada koos loogiliste operaatoritega nagu AND ja OR, võrdlusoperaatoritega nagu = = jne.
  • Loogilise operaatori AND kasutamisel peavad kõik kriteeriumid olema täidetud.
  • Loogilise operaatori OR kasutamisel peab olema täidetud ükskõik milline kriteerium.
  • Märksõna IN kasutatakse väärtuste loendile vastavate ridade valimiseks.

Ajurünnak Oletame, et soovime saada nimekirja renditud filmidest, mida ei ole õigeaegselt tagastatud 25.06.2012. Selle saavutamiseks võime kasutada SQL WHERE lause klauslit koos vähem kui võrdlusoperaatori ja loogilise operaatoriga AND.

SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Ülaltoodud skripti käivitamine MySQL-i töölaual annab järgmised tulemused.
 
reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0