Hva er HVOR Klausul i MySQL?
WHERE klausul i MySQL er et nøkkelord som brukes til å spesifisere de nøyaktige kriteriene for data eller rader som vil bli påvirket av den angitte SQL-setningen. WHERE-setningen kan brukes med SQL-setninger som INSERT, UPDATE, SELECT og DELETE for å filtrere poster og utføre ulike operasjoner på dataene.
Vi så på hvordan vi kan spørre om data fra en database ved hjelp av SELECT-setningen i forrige opplæring. SELECT-setningen returnerte alle resultatene fra den forespurte databasetabellen.
De er imidlertid tider da vi vil begrense søkeresultatene til en spesifisert tilstand. WHERE-klausulen i SQL er nyttig i slike situasjoner.

WHERE klausul Syntaks
Den grunnleggende syntaksen for WHERE-setningen når den brukes i en MySQL SELECT WHERE-setning, er som følger.
SELECT * FROM tableName WHERE condition;
HER
- "SELECT * FROM tableName" er standard SELECT-setning
- "WHERE" er nøkkelordet som begrenser vårt utvalgte søkeresultatsett, og "condition" er filteret som skal brukes på resultatene. Filteret kan være et område, en verdi eller en undersøk.
La oss nå se på et praktisk eksempel .
Anta at vi ønsker å få et medlems personlige opplysninger fra medlemstabellen gitt medlemsnummer 1, vi bruker følgende skript for å oppnå det.
SELECT * FROM `members` WHERE `membership_number` = 1;
Å utføre ovennevnte skript i MySQL arbeidsbenk på "myflixdb" vil gi følgende resultater.
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. |
WHERE klausul kombinert med - OG LOGISK operatør
WHERE-tilstanden i MySQL når den brukes sammen med den OG-logiske operatøren, utføres bare hvis ALLE spesifiserte filterkriterier er oppfylt. La oss nå se på et praktisk eksempel - Anta at vi ønsker å få en liste over alle filmene i kategori 2 som ble utgitt i 2008, vi bruker skriptet vist nedenfor for å oppnå det.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Å utføre skriptet ovenfor i MySQL arbeidsbenk mot "myflixdb" gir følgende resultater.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
WHERE klausul kombinert med - ELLER LOGISK operatør
WHERE-setningen når den brukes sammen med OR-operatøren, utføres bare hvis noen eller hele det angitte filterkriteriet er oppfylt. Følgende manus får alle filmene i kategori 1 eller kategori 2SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Å utføre skriptet ovenfor i MySQL arbeidsbenk mot "myflixdb" gir følgende resultater.
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 klausul kombinert med - IN Keyword
WHERE i MySQL-setningen, når den brukes sammen med IN-nøkkelordet, påvirker bare radene hvis verdier samsvarer med listen over verdier som er gitt i IN-nøkkelordet. MySQL IN-setningen bidrar til å redusere antall OR-klausuler du måtte bruke. Følgende MySQL WHERE IN-spørring gir rader der membership_number enten er 1, 2 eller 3SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Å utføre skriptet ovenfor i MySQL arbeidsbenk mot "myflixdb" gir følgende resultater.
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. |
WHERE klausul kombinert med - NOT IN Keyword
WHERE-setningen når den brukes sammen med NOT IN-nøkkelordet, påvirker IKKE radene hvis verdier samsvarer med listen over verdier som er gitt i NOT IN-nøkkelordet. Følgende spørring gir rader der medlemsnummer IKKE er 1, 2 eller 3SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Å utføre skriptet ovenfor i MySQL arbeidsbenk mot "myflixdb" gir følgende resultater.
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 klausul kombinert med - COMPARISON Operators
De mindre enn (), lik (=), ikke lik () sammenligningsoperatørene kan brukes med WHERE-klausulen= Lik
Følgende skript får alle de kvinnelige medlemmene fra medlemstabellen ved hjelp av sammenligningsoperatøren.SELECT * FROM `members` WHERE `gender` = 'Female';
Å utføre skriptet ovenfor i MySQL arbeidsbenk mot "myflixdb" gir følgende resultater.
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 |
> Større enn
Følgende skript får alle betalingene som er større enn 2000 fra betalingstabellen. VELG * FRA `betalinger` HVOR` beløp_betalt`> 2000; Å utføre skriptet ovenfor i MySQL arbeidsbenk mot "myflixdb" gir følgende resultater.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 |
<> Ikke lik
Følgende manus får alle filmene hvis kategori-ID ikke er 1.SELECT * FROM `movies` WHERE `category_id`<> 1;Å utføre skriptet ovenfor i MySQL arbeidsbenk mot "myflixdb" gir følgende resultater.
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 |
Sammendrag
- SQL WHERE-setningen brukes til å begrense antall rader som påvirkes av et SELECT-, UPDATE- eller DELETE-spørsmål.
- WHERE-tilstanden i SQL kan brukes i forbindelse med logiske operatorer som AND og OR, sammenligningsoperatorer som, = etc.
- Når det brukes sammen med den OG-logiske operatøren, må alle kriteriene være oppfylt.
- Når det brukes med den ELLER logiske operatøren, må noen av kriteriene være oppfylt.
- Stikkordet IN brukes til å velge rader som samsvarer med en liste over verdier.
Brain Teaser La oss anta at vi ønsker å få en liste over leide filmer som ikke er returnert i tide 25/06/2012. Vi kan bruke SQL WHERE-setningsparagrafen sammen med operatøren med mindre enn sammenligning og OG-logisk operatør for å oppnå det.
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;Å utføre skriptet ovenfor i MySQL arbeidsbenk gir følgende resultater.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |