MySQL WHERE-lause: AND, OR, IN, NOT IN Kyselyesimerkki
Missä on WHERE-lauseke MySQL?
WHERE in MySQL on avainsana, jota käytetään määrittämään tarkat kriteerit tiedoille tai riveille, joihin määritetty SQL-käsky vaikuttaa. WHERE-lausetta voidaan käyttää SQL-käskyjen, kuten INSERT, UPDATE, SELECT ja DELETE, kanssa tietueiden suodattamiseen ja erilaisten toimintojen suorittamiseen tiedoilla.
Tarkastelimme, kuinka tietoja voidaan kysyä osoitteesta a tietokanta käyttämällä edellisen opetusohjelman SELECT-lausetta. SELECT-käsky palautti kaikki tulokset kyselystä tietokantataulukosta.
Ne ovat kuitenkin aikoja, jolloin haluamme rajoittaa kyselyn tulokset tiettyyn ehtoon. SQL:n WHERE-lause on hyödyllinen tällaisissa tilanteissa.

WHERE-lause Syntaksi
WHERE-lauseen perussyntaksi, kun sitä käytetään lausekkeessa a MySQL SELECT WHERE -lause on seuraava.
SELECT * FROM tableName WHERE condition;
TÄÄLTÄ
- "SELECT * FROM tableName" on standardi SELECT-lause
- "MISSÄ" on avainsana, joka rajoittaa valintakyselymme tulosjoukkoa ja "kunto" on tuloksiin käytettävä suodatin. Suodatin voi olla alue, yksittäinen arvo tai alikysely.
Katsotaan nyt a käytännön esimerkki.
Oletetaan, että haluamme saada jäsenen henkilötiedot jäsentaulukosta jäsennumerolla 1, käytämme seuraavaa skriptiä saavuttaaksemme sen.
SELECT * FROM `members` WHERE `membership_number` = 1;
Suoritetaan yllä oleva komentosarja MySQL työpöytä "myflixdb" tuottaisi seuraavat tulokset.
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 | janetjones@yagoo.cm |
WHERE-lause yhdistettynä - JA LOOGINEN OperaTor
WHERE-tilassa MySQL kun sitä käytetään yhdessä loogisen AND-operaattorin kanssa, se suoritetaan vain, jos KAIKKI määritetyt suodatusehdot täyttyvät.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
WHERE-lause yhdistettynä - OR LOOGINEN OperaTor
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
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-lause yhdistettynä - IN avainsana
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Suoritetaan yllä oleva komentosarja MySQL työpenkki "myflixdb":tä vastaan tuottaa seuraavat tulokset.
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 | 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-lause yhdistettynä - EI SISÄLLÄ avainsana
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Suoritetaan yllä oleva komentosarja MySQL työpenkki "myflixdb":tä vastaan tuottaa seuraavat tulokset.
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-lause yhdistettynä - VERTAILU OperaTors
= Yhtä kuin
SELECT * FROM `members` WHERE `gender` = 'Female';
Suoritetaan yllä oleva komentosarja MySQL työpenkki "myflixdb":tä vastaan tuottaa seuraavat tulokset.
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 | 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 |
> Suurempi kuin
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 |
< > Ei sama kuin
SELECT * FROM `movies` WHERE `category_id`<> 1;
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 |
Yhteenveto
- SQL WHERE -lausetta käytetään rajoittamaan niiden rivien määrää, joihin SELECT, UPDATE tai POISTA kysely.
- WHERE-ehtoa SQL:ssä voidaan käyttää yhdessä loogisten operaattoreiden, kuten AND ja OR, kanssa, vertailuoperaattoreiden, kuten ,= jne., kanssa.
- Käytettäessä AND:n kanssa looginen operaattori, kaikkien kriteerien on täytyttävä.
- Kun sitä käytetään OR-loogisen operaattorin kanssa, minkä tahansa kriteerin on täytettävä.
- Avainsanaa IN käytetään arvoluetteloa vastaavien rivien valitsemiseen.
Brain Teaser
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Suoritetaan yllä oleva komentosarja MySQL työpöytä antaa seuraavat tulokset.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |