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.
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 | |
---|---|---|---|---|---|---|---|
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 filmusSELECT * 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 3SELECT * 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 | |
---|---|---|---|---|---|---|---|
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 3SELECT * 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 | |
---|---|---|---|---|---|---|---|
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 | |
---|---|---|---|---|---|---|---|
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 |