MySQL WHERE klauzula: AND, OR, IN, NOT IN Query Example

Satura rādītājs:

Anonim

Kas ir WHERE klauzula MySQL?

WHERE klauzula MySQL ir atslēgvārds, ko izmanto, lai norādītu precīzus datu vai rindu kritērijus, kurus ietekmēs norādītais SQL priekšraksts. Klauzulu WHERE var izmantot ar SQL priekšrakstiem, piemēram, INSERT, UPDATE, SELECT un DELETE, lai filtrētu ierakstus un veiktu dažādas darbības ar datiem.

Mēs apskatījām, kā vaicāt datus no datu bāzes, izmantojot iepriekšējās apmācības paziņojumu SELECT. Izraksts SELECT atgrieza visus rezultātus no pieprasītās datu bāzes tabulas.

Tomēr tie ir gadījumi, kad mēs vēlamies ierobežot vaicājuma rezultātus līdz noteiktam nosacījumam. Šādās situācijās SQL klauzula WHERE ir noderīga.

KURA klauzula MySQL

KUR klauzulas sintakse

Pamata sintakse klauzulai WHERE, ja to izmanto MySQL SELECT WHERE priekšrakstā, ir šāda.

SELECT * FROM tableName WHERE condition;

ŠEIT

  • "SELECT * FROM tableName" ir standarta SELECT priekšraksts
  • “WHERE” ir atslēgvārds, kas ierobežo mūsu atlasīto vaicājuma rezultātu kopu, un “condition” ir filtrs, kas jāpielieto rezultātiem. Filtrs var būt diapazons, viena vērtība vai apakšvaicājums.

Tagad aplūkosim praktisku piemēru .

Pieņemsim, ka mēs vēlamies iegūt dalībnieka personisko informāciju no dalībnieku tabulas ar dalības numuru 1, lai to panāktu, mēs izmantosim šādu skriptu.

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

Izpildot iepriekš minēto skriptu MySQL darbagaldā "myflixdb", tiktu iegūti šādi rezultāti.

 
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.

KURA klauzula apvienota ar - UN LOGICAL Operator

WHERE nosacījums MySQL, lietojot to kopā ar loģisko operatoru AND, tiek izpildīts tikai tad, ja ir izpildīti VISI norādītie filtrēšanas kritēriji. Tagad aplūkosim praktisku piemēru - Pieņemsim, ka mēs vēlamies iegūt visu 2. kategorijas filmu sarakstu, kas tika izlaistas 2008. gadā, mēs izmantotu zemāk redzamo skriptu, lai to panāktu.

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

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret "myflixdb" rada šādus rezultātus.

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

WHERE klauzula apvienojumā ar - OR LOGICAL Operator

Klauzula WHERE, ja to izmanto kopā ar operatoru OR, tiek izpildīta tikai tad, ja ir izpildīti visi norādītie filtra kritēriji vai visi tie. Šis skripts iegūst visas filmas vai nu 1., vai 2. kategorijā
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret "myflixdb" rada šādus rezultātus.

 
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

KUR klauzula apvienojumā ar - IN Atslēgvārds

Klauzula WHERE in MySQL, lietojot to kopā ar IN atslēgvārdu, ietekmē tikai tās rindas, kuru vērtības atbilst IN atslēgvārdā sniegto vērtību sarakstam. MySQL IN paziņojums palīdz samazināt klauzulu skaitu VAI, kuras jums var nākties izmantot. Šis MySQL WHERE IN vaicājums dod rindas, kurās dalības_numurs ir vai nu 1, 2 vai 3
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret "myflixdb" rada šādus rezultātus.

 
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 klauzula apvienota ar - NOT IN Keyword

Klauzula WHERE, lietojot to kopā ar atslēgvārdu NOT IN, neietekmē rindas, kuru vērtības sakrīt ar atslēgvārdā NOT IN sniegto vērtību sarakstu. Šis vaicājums dod rindas, kurās dalības_numurs NAV 1, 2 vai 3
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret "myflixdb" rada šādus rezultātus.

 
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

Klauzula apvienojumā ar - SALĪDZINĀJUMA operatori

Mazāk par (), vienāds ar (=), kas nav vienāds ar () salīdzināšanas operatoriem, var izmantot klauzulu WHERE

= Vienāds ar

Šis skripts saņem visas dalībnieces no dalībnieku tabulas, izmantojot vienādu ar salīdzinājumu operatoru.
SELECT * FROM `members` WHERE `gender` = 'Female';

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret "myflixdb" rada šādus rezultātus.

 
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

> Lielāks par

Šis skripts no maksājumu tabulas iegūst visus maksājumus, kuru vērtība pārsniedz 2000. SELECT * FROM `maksājumi` WHERE` summa_maksāts`> 2000; Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret "myflixdb" rada šādus rezultātus.
 
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

<> Nav vienāds ar

Šis skripts iegūst visas filmas, kuru kategorijas ID nav 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret "myflixdb" rada šādus rezultātus.
 
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

Kopsavilkums

  • Klauzula SQL WHERE tiek izmantota, lai ierobežotu to rindu skaitu, kuras ietekmē vaicājums SELECT, UPDATE vai DELETE.
  • SQL nosacījumu WHERE var izmantot kopā ar loģiskajiem operatoriem, piemēram, AND un OR, salīdzināšanas operatoriem, piemēram, = utt.
  • Lietojot kopā ar loģisko operatoru AND, ir jāatbilst visiem kritērijiem.
  • Lietojot kopā ar loģisko operatoru OR, ir jāatbilst jebkuram no kritērijiem.
  • Atslēgas vārds IN tiek izmantots, lai atlasītu rindas, kas atbilst vērtību sarakstam.

Brain Teaser Pieņemsim, ka mēs vēlamies iegūt īrētu filmu sarakstu, kuras nav atgrieztas laikā, 25.06.2012. Lai to panāktu, mēs varam izmantot SQL WHERE paziņojuma klauzulu kopā ar mazāku nekā salīdzināšanas operatoru un loģisko operatoru AND.

SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Izpildot iepriekš minēto skriptu MySQL darbagaldā, tiek iegūti šādi rezultāti.
 
reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0