„MySQL WHERE“ sąlyga: AND, OR, IN, NOT IN Query Example

Kas yra „WHERE“ sąlyga „MySQL“?

„WHERE“ sąlyga „MySQL“ yra raktinis žodis, naudojamas nurodyti tiksliems duomenų ar eilučių, kuriems įtakos turės nurodytas SQL sakinys, kriterijus. Sąlyga WHERE gali būti naudojama su SQL sakiniais, tokiais kaip INSERT, UPDATE, SELECT ir DELETE, norint filtruoti įrašus ir atlikti įvairias duomenų operacijas.

Mes ieškojome, kaip pateikti užklausą duomenims iš duomenų bazės, naudojant ankstesnėje mokymo programoje pateiktą SELECT sakinį. SELECT sakinys grąžino visus užklausos duomenų bazės lentelės rezultatus.

Tačiau tai laikas, kai norime apriboti užklausos rezultatus iki nurodytos sąlygos. SQL sąlyga WHERE yra naudinga tokiose situacijose.

„MySQL“ sąlyga WHERE

Kur sąlyga sintaksė

Pagrindinė sakinio WHERE sintakse, kai naudojama sakinyje „MySQL SELECT WHERE“, yra tokia.

SELECT * FROM tableName WHERE condition;

ČIA

  • „SELECT * FROM tableName“ yra standartinis SELECT sakinys
  • „WHERE“ yra raktinis žodis, ribojantis mūsų pasirinktą užklausos rezultatų rinkinį, o „condition“ - filtras, kuris bus taikomas rezultatams. Filtras gali būti diapazonas, viena vertė arba antrinė užklausa.

Dabar pažvelkime į praktinį pavyzdį .

Tarkime, kad norime gauti nario asmeninę informaciją iš narių lentelės, nurodant narystės numerį 1, tam naudosime šį scenarijų.

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

Vykdant aukščiau pateiktą scenarijų „MySQL“ darbastalyje „myflixdb“ būtų gauti šie rezultatai.

 
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.

Sąlyga WHERE kartu su - AND LOGICAL Operator

WHERE sąlyga MySQL, kai naudojama kartu su loginiu operatoriumi AND, vykdoma tik tuo atveju, jei tenkinami VISI nurodyti filtro kriterijai. Dabar pažvelkime į praktinį pavyzdį - Tarkime, kad norime gauti visų 2 kategorijos filmų, kurie buvo išleisti 2008 m., Sąrašą, mes norėtume naudoti žemiau pateiktą scenarijų.

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

Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ duoda šiuos rezultatus.

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

Sąlyga WHERE kartu su - OR LOGICAL Operator

WHERE sąlyga, kai naudojama kartu su operatoriumi OR, vykdoma tik tuo atveju, jei tenkinami visi arba visi nurodyti filtro kriterijai. Šis scenarijus gauna visus 1 arba 2 kategorijos filmus
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;

Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ duoda šiuos rezultatus.

 
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 sąlyga kartu su - IN raktiniu žodžiu

„WHERE in MySQL“ sąlyga, kai naudojama kartu su IN raktiniu žodžiu, veikia tik tas eilutes, kurių reikšmės atitinka IN raktiniame žodyje pateiktą verčių sąrašą. „MySQL IN“ teiginys padeda sumažinti ARBA išlygų, kurias gali tekti naudoti, skaičių. Šioje „MySQL WHERE IN“ užklausoje pateikiamos eilutės, kuriose narystės numeris yra 1, 2 arba 3
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ duoda šiuos rezultatus.

 
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.

Kur sąlyga derinama su - NOT IN Keyword

Sąlyga WHERE, kai naudojama kartu su raktiniu žodžiu NOT IN, NETURI įtakos eilutėms, kurių vertės atitinka raktinių žodžių NOT IN pateiktą verčių sąrašą. Ši užklausa pateikia eilutes, kuriose narystės_ numeris NE 1, 2 ar 3
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ duoda šiuos rezultatus.

 
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

Sąlyga WHERE kartu su operatoriais - PALYGINIMAS

Mažesnę nei (), lygią (=), nelygią () palyginimo operatorių galima naudoti su WHERE sąlyga

= Lygi

Šis scenarijus iš narių lentelės gauna visas moteris, naudodamas lygių palyginimo operatorių.
SELECT * FROM `members` WHERE `gender` = 'Female';

Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ duoda šiuos rezultatus.

 
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

> Didesnis nei

Šis scenarijus iš mokėjimų lentelės gauna visus didesnius nei 2 000 mokėjimus. PASIRINKTI * IŠ „mokėjimų“ KUR „suma_moka“> 2000; Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ duoda šiuos rezultatus.
 
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

<> Nelygu

Šis scenarijus gauna visus filmus, kurių kategorijos ID nėra 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Minėto scenarijaus vykdymas MySQL darbastalyje prieš „myflixdb“ duoda šiuos rezultatus.
 
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

Santrauka

  • SQL WHERE sąlyga naudojama norint apriboti eilučių, kurias paveikė užklausa SELECT, UPDATE arba DELETE, skaičių.
  • WHERE sąlyga SQL gali būti naudojama kartu su loginiais operatoriais, tokiais kaip AND ir OR, palyginimo operatoriais, pvz., = Etc.
  • Kai naudojamas su loginiu operatoriumi AND, turi būti įvykdyti visi kriterijai.
  • Kai naudojamas kartu su loginiu operatoriumi OR, turi būti įvykdytas bet kuris iš kriterijų.
  • Raktinis žodis IN naudojamas pasirinkti eilučių, atitinkančių verčių sąrašą.

Galvosūkis Tarkime, kad norime gauti nuomojamų filmų, kurie nebuvo grąžinti laiku, sąrašą 2012-06-25. Tam pasiekti galime naudoti SQL WHERE sakinio sąlygą kartu su mažiau nei palyginimo operatoriumi ir loginiu operatoriumi AND.

SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Minėto scenarijaus vykdymas MySQL darbastalyje duoda šiuos rezultatus.
 
reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0

Įdomios straipsniai...