V tomto tématu se naučíme, jak přidat více podmínek pomocí klauzule WHERE.
Nejprve pochopme koncept klauzule WHERE.
Klauzule WHERE se používá k určení podmínky při načítání záznamů z tabulky.
Klauzule WHERE se obecně používá s příkazem SELECT v SQL
Dotaz SELECT zobrazí pouze záznamy splňující podmínku uvedenou v klauzuli WHERE
V podmínce klauzule WHERE dotazu SELECT může být zadána jedna nebo více podmínek.
Operátory AND a OR se používají ke kontrole více podmínek pomocí klauzule WHERE v jednom dotazu.
- Operátor AND s klauzulí WHERE
Kdykoli je operátor AND použit mezi podmínkami s klauzulí WHERE ke kontrole více podmínek v dotazu SELECT, výsledky se zobrazí, když je splněna pouze jedna podmínka uvedená v dotazu.
Syntaxe:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
Příklad 1:
Zvažte tabulku studentů uvedenou níže. Budeme uvažovat stejnou tabulku pro všechny následující příklady.
Student_RollNo | Jméno_studenta | Student_Gender | Student_MobileNumber | Student_HomeTown | Student_Age | Student_Percentage |
1 | Další Rohit | Muž | 9890786123 | Lucknow | 23 | 75 |
2 | Kunal Shah | Muž | 7789056784 | Čandigarh | 20 | 68 |
3 | Kartík Goenka | Muž | 9908743576 | Ahemdabad | 22 | 92 |
4 | Anupama Shah | Žena | 8890907656 | Čandigarh | 24 | 94 |
5 | Snehal Jain | Žena | 8657983476 | Surat | 21 | 94 |
Nyní se podívejme na několik příkladů, abychom tento koncept pochopili prakticky.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
Výstup:
V tabulce studentů je pouze jeden záznam s číslem 2, který má pohlaví jako muž a rodné město jako Chandigarh. I když některá ze zadaných podmínek není splněna, pak v takovém případě nebude výstup stejný. Zobrazený záznam/záznamy se budou lišit nebo v některých případech může být výstupem prázdná sada, pokud žádný záznam nesplňuje obě podmínky.
Příklad 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
Výstup:
V tabulce studentů je pouze jeden záznam s číslem „5“, který má věk rovný „21“ a procento rovné „94“.
Příklad 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Výstup:
Mezi všemi záznamy v tabulce studentů je pouze jeden záznam s číslem „4“, který má pohlaví jako „muž“, domovské město jako „Chandigarh“ a věk se rovná „24“. Toto je jediný záznam, který splňuje všechny tři podmínky.
Příklad 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
Výstup:
Mezi všemi záznamy v tabulce studentů je pouze jeden záznam s číslem '3', ve kterém jsou splněny všechny tři podmínky, tj. pohlaví jako muž, jméno se rovná 'Kartik Goenka' a procento se rovná '92'.
- Operátor OR s klauzulí WHERE
Kdykoli je mezi podmínkami s klauzulí WHERE použit operátor OR ke kontrole více podmínek v dotazu SELECT, pak se výsledky zobrazí, když je mezi všemi ostatními podmínkami zapsanými v dotazu splněna alespoň jedna podmínka.
Syntaxe:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
Příklad 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
Výstup:
V tabulce studentů jsou čtyři záznamy s číslem 1, 2, 3 a 4, které mají pohlaví jako muž nebo rodné město jako Chandigarh. I když jsou splněny jakékoli specifikované podmínky, bude tento záznam považován za součást výstupu. V některých případech může být výstupem prázdná sada, pokud žádný záznam nesplňuje ani jednu podmínku.
Příklad 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
Výstup:
V tabulce studentů jsou dvě čísla záznamů „4“ a „5“, která má buď věk rovný „21“ nebo procento rovné „94“.
Příklad 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Výstup:
Mezi všemi záznamy v tabulce studentů jsou tři záznamy s pořadovým číslem ‚2‘, ‚4‘ a ‚5‘, který má buď pohlaví jako ‚žena‘; rodné město jako „Chandigarh“ nebo věk se rovná „24“. Toto jsou záznamy, které splňují jednu ze tří podmínek.
Příklad 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
Výstup:
Mezi všemi záznamy v tabulce studentů jsou tři záznamy s čísly '1', '2' a '3', ve kterých je splněna jedna ze tří podmínek, tj. pohlaví jako muž, jméno se rovná 'Kartik Goenka' nebo procento se rovná '92'.
- Operátory AND a OR s klauzulí WHERE v jediném dotazu
V dotazu na klauzuli WHERE s příkazem SELECT můžeme také použít kombinaci operátorů AND a OR v jediném dotazu. Účelem použití kombinací operátorů AND a OR v jediném dotazu je otestovat vyšší úroveň komplikovaných podmínek.
Syntaxe:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
Příklad 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Výstup:
Podle podmínek v dotazu by záznam měl mít pohlaví jako 'žena' a domovské město jako 'Chandigarh'. Věk studenta může, ale nemusí být „24“. Existuje tedy pouze jeden záznam s číslem 4, který tyto podmínky splňuje. I když má jakýkoli záznam pohlaví jako „žena“ a domovské město jiné než „Chandigarh“ nebo naopak, nebude tento záznam ve výstupu zohledněn.
Příklad 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Výstup:
Podle podmínek v dotazu by záznam měl mít buď pohlaví jako „žena“, nebo domovské město jako „Chandigarh“. Věk studenta by neměl být jiný než „24“. Existují tedy dva záznamy s číslem 4 a 5, které splňují tyto podmínky.
Příklad 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
Výstup:
V tabulce studentů je pouze jeden záznam s pohlavím „muž“, domovským městem jako „Lucknow“ a procento studenta by mělo být „75“. Věk studenta může být 23 nebo jiný než 23.
Příklad 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
Výstup:
V tabulce studentů jsou tři záznamy, které mají pohlaví jako „muž“ a věk jako „23“. Domovské město může, ale nemusí být „Lucknow“. Procento také může nebo nemusí být „75“.