MySQL WHERE Clauza: AND, OR, IN, NOT IN Exemplu de interogare
În ce se află clauza WHERE MySQL?
UNDE Clauza in MySQL este un cuvânt cheie folosit pentru a specifica criteriile exacte de date sau rânduri care vor fi afectate de instrucțiunea SQL specificată. Clauza WHERE poate fi utilizată cu instrucțiuni SQL precum INSERT, UPDATE, SELECT și DELETE pentru a filtra înregistrările și a efectua diverse operații asupra datelor.
Am analizat cum să interogăm datele de la a Baza de date folosind instrucțiunea SELECT din tutorialul anterior. Instrucțiunea SELECT a returnat toate rezultatele din tabelul bazei de date interogat.
Sunt totuși momente în care dorim să restricționăm rezultatele interogării la o condiție specificată. Clauza WHERE din SQL este utilă în astfel de situații.

Clauza WHERE Sintaxă
Sintaxa de bază pentru clauza WHERE atunci când este utilizată în a MySQL Instrucțiunea SELECT WHERE este după cum urmează.
SELECT * FROM tableName WHERE condition;
AICI
- „SELECT * FROM tableName” este standardul instrucțiunea SELECT
- "UNDE" este cuvântul cheie care limitează setul nostru de rezultate ale interogării selectate și "condiție" este filtrul care trebuie aplicat rezultatelor. Filtrul poate fi un interval, o singură valoare sau o subinterogare.
Să ne uităm acum la a exemplu practic.
Să presupunem că dorim să obținem detaliile personale ale unui membru din tabelul membrilor având în vedere numărul de membru 1, vom folosi următorul script pentru a realiza acest lucru.
SELECT * FROM `members` WHERE `membership_number` = 1;
Executarea scriptului de mai sus în MySQL banc de lucru pe „myflixdb” ar produce următoarele rezultate.
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 |
Clauza WHERE combinată cu – AND LOGIC OperaTdR
Condiția WHERE în MySQL atunci când este utilizat împreună cu operatorul logic AND, este executat numai dacă sunt îndeplinite TOATE criteriile de filtrare specificate.
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 |
Clauza WHERE combinată cu – OR LOGIC OperaTdR
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 |
Clauza WHERE combinată cu – IN Cuvânt cheie
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Executarea scriptului de mai sus în MySQL Workbench împotriva „myflixdb” produce următoarele rezultate.
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 |
Clauza WHERE combinată cu – NU ÎN Cuvânt cheie
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Executarea scriptului de mai sus în MySQL Workbench împotriva „myflixdb” produce următoarele rezultate.
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 |
Clauza WHERE combinată cu – COMPARAŢIE Operatori
= Egal cu
SELECT * FROM `members` WHERE `gender` = 'Female';
Executarea scriptului de mai sus în MySQL Workbench împotriva „myflixdb” produce următoarele rezultate.
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 |
> Mai mare ca
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 |
< > Nu este egal cu
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 |
Rezumat
- Clauza SQL WHERE este folosită pentru a restricționa numărul de rânduri afectate de un SELECT, UPDATE sau ȘTERGERE interogarea.
- Condiția WHERE din SQL poate fi utilizată împreună cu operatori logici precum AND și SAU, operatori de comparație precum ,= etc.
- Când este utilizat cu AND operator logic, trebuie îndeplinite toate criteriile.
- Când este utilizat cu operatorul logic SAU, oricare dintre criterii trebuie îndeplinit.
- Cuvântul cheie IN este folosit pentru a selecta rândurile care corespund unei liste de valori.
Joc de inteligență
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Executarea scriptului de mai sus în MySQL workbench dă următoarele rezultate.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |