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 MySQL
WHERE-lause MySQL

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 email
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.

Katsotaanpa nyt käytännön esimerkkiä – Oletetaan, että haluamme saada luettelon kaikista luokan 2 elokuvista, jotka julkaistiin vuonna 2008, käytämme alla olevaa käsikirjoitusta saavuttaaksemme sen.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Suoritetaan yllä oleva komentosarja MySQL työpenkki "myflixdb":tä vastaan ​​tuottaa seuraavat tulokset.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

WHERE-lause yhdistettynä - OR LOOGINEN OperaTor

WHERE-lause, kun sitä käytetään yhdessä OR-operaattorin kanssa, suoritetaan vain, jos jokin tai kaikki määritetyt suodatusehdot täyttyvät.
Seuraava käsikirjoitus saa kaikki elokuvat joko kategoriassa 1 tai kategoriassa 2
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Suoritetaan yllä oleva komentosarja MySQL työpenkki "myflixdb":tä vastaan ​​tuottaa seuraavat tulokset.
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

MISSÄ sisään MySQL lauseke, kun sitä käytetään yhdessä IN-avainsanan kanssa, vaikuttaa vain riveihin, joiden arvot vastaavat IN-avainsanassa annettua arvoluetteloa. The MySQL IN-lause auttaa vähentämään OR-lauseiden määrää, joita saatat joutua käyttämään.
Seuraavat MySQL WHERE IN -kysely antaa rivit, joissa jäsennumero on joko 1, 2 tai 3
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 email
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

WHERE-lause, kun sitä käytetään yhdessä NOT IN -avainsanan kanssa, EI vaikuta riveihin, joiden arvot vastaavat NOT IN -avainsanassa annettua arvoluetteloa.
Seuraava kysely antaa rivejä, joissa jäsenyys_numero EI ole 1, 2 tai 3
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 email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

WHERE-lause yhdistettynä - VERTAILU OperaTors

Pienempi kuin (), yhtä suuri kuin (=), ei yhtä suuri kuin () vertailuoperaattoreita voidaan käyttää WHERE-lauseen kanssa

= Yhtä kuin

Seuraava skripti hakee kaikki naisjäsenet jäsentaulukosta käyttämällä yhtäläinen vertailu -operaattoria.
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 email
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

Seuraava komentosarja hakee kaikki maksut, jotka ovat yli 2,000 XNUMX maksutaulukosta.
SELECT * FROM `maksut` WHERE `maksettu_summa` > 2000;
Suoritetaan yllä oleva komentosarja MySQL työpenkki "myflixdb":tä vastaan ​​tuottaa seuraavat tulokset.
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

Seuraava käsikirjoitus saa kaikki elokuvat, joiden luokkatunnus ei ole 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Suoritetaan yllä oleva komentosarja MySQL työpenkki "myflixdb":tä vastaan ​​tuottaa seuraavat tulokset.
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

Oletetaan, että haluamme saada listan vuokraelokuvista, joita ei ole palautettu ajoissa 25. Voimme käyttää SQL WHERE -lausetta yhdessä vähemmän kuin vertailu-operaattorin ja AND-loogisen operaattorin kanssa.
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