I dette emne vil vi lære, hvordan du tilføjer flere betingelser ved hjælp af WHERE-sætningen.
Lad os først forstå begrebet WHERE-klausul.
WHERE-sætning bruges til at angive en betingelse, mens der hentes poster fra en tabel.
WHERE-sætning bruges generelt med SELECT-sætning i SQL
SELECT-forespørgslen viser kun de poster, der opfylder betingelsen specificeret i WHERE-sætningen
Der kan være en eller mere end én betingelse angivet i WHERE-sætningsbetingelsen for en SELECT-forespørgsel.
AND- og OR-operatorerne bruges til at kontrollere flere betingelser ved hjælp af WHERE-sætningen i en enkelt forespørgsel.
- AND operator med WHERE-sætning
Når AND-operatoren bruges mellem betingelserne med WHERE-klausulen for at kontrollere flere betingelser i SELECT-forespørgslen, vises resultaterne, når kun mere end én betingelse i forespørgslen er opfyldt.
Syntaks:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
Eksempel 1:
Overvej elevernes tabel nedenfor. Vi vil overveje den samme tabel for alle de følgende eksempler.
Student_RollNo | Student_Name | Student_Køn | Student_MobileNumber | Student_Hjemby | Student_Alder | Student_Percentage |
1 | Rohit More | Mand | 9890786123 | Lykke | 23 | 75 |
2 | Kunal Shah | Mand | 7789056784 | Chandigarh | 20 | 68 |
3 | Kartik Goenka | Mand | 9908743576 | Ahemdabad | 22 | 92 |
4 | Anupama Shah | Kvinde | 8890907656 | Chandigarh | 24 | 94 |
5 | Snehal Jain | Kvinde | 8657983476 | Surat | 21 | 94 |
Lad os nu se nogle få eksempler for at forstå dette koncept praktisk.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
Output:
Der er kun én rekord i elevtabellen med rulle nummer 2, som har køn som mand og hjemby som Chandigarh. Selvom en af de specificerede betingelser ikke er opfyldt, vil outputtet i så fald ikke være det samme. De viste poster/poster vil være anderledes, eller i nogle tilfælde kan outputtet være et tomt sæt, hvis ingen post opfylder begge betingelser.
Eksempel 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
Output:
Der er kun én post med rullenummer '5' i elevtabellen, som har en alder svarende til '21' og procentdel lig med '94'.
Eksempel 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Output:
Blandt alle posterne i elevtabellen er der kun én post med rullenummer '4', som har køn som 'mand', hjembyen som 'Chandigarh', og alder er lig med '24'. Dette er den eneste rekord, der opfylder alle tre betingelser.
Eksempel 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
Output:
Blandt alle posterne i elevtabellen er der kun én post med rullenummer '3', hvor alle tre betingelser er opfyldt, dvs. køn som mand, navn er lig med 'Kartik Goenka' og procent er lig med '92'.
- ELLER operator med WHERE-sætning
Når OR-operatoren bruges mellem betingelserne med WHERE-sætningen for at kontrollere flere betingelser i SELECT-forespørgslen, vises resultaterne, når mindst én betingelse er opfyldt blandt alle de andre betingelser, der er skrevet i en forespørgsel.
Syntaks:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
Eksempel 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
Output:
I elevtabellen er der fire poster med rullenummer 1, 2, 3 og 4, som har køn som mand eller hjemby som Chandigarh. Selv hvis nogen specificerede betingelser er opfyldt, vil denne post blive betragtet som en del af outputtet. I nogle tilfælde kan outputtet være et tomt sæt, hvis ingen post opfylder nogen af betingelserne.
Eksempel 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
Output:
Der er to rekorder, der ruller numre '4' og '5' i elevtabellen, som enten har en alder svarende til '21' eller en procentdel lig med '94'.
Eksempel 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Output:
Blandt alle posterne i elevtabellen er der tre plader med rullenummer '2', '4' og '5', som har begge køn som 'kvinde'; hjemby som 'Chandigarh' eller alder er lig med '24'. Dette er de optegnelser, der opfylder en af de tre betingelser.
Eksempel 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
Output:
Blandt alle posterne i elevtabellen er der tre poster med rullenummer '1', '2' og '3', hvor en af de tre betingelser er opfyldt, dvs. køn som mand, navn er lig med 'Kartik Goenka' eller procent er lig med '92'.
- AND- og OR-operator med WHERE-sætning i en enkelt forespørgsel
I WHERE-sætningsforespørgsel med en SELECT-sætning kan vi også bruge en kombination af AND- og OR-operatorer i en enkelt forespørgsel. Formålet med at bruge kombinationerne af OG- og ELLER-operatorer i en enkelt forespørgsel er at teste det højere niveau af komplicerede forhold.
Syntaks:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
Eksempel 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Output:
Ifølge betingelserne i en forespørgsel skal posten have køn som 'kvinde' og hjemby som 'Chandigarh'. Elevens alder kan være '24' eller ej. Så der er kun én plade med rullenummer '4', som opfylder disse betingelser. Selv hvis en plade har køn som "kvinde" og hjemby, bortset fra "Chandigarh" eller omvendt, vil denne post ikke blive taget i betragtning i output.
Eksempel 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Output:
Ifølge betingelserne i en forespørgsel skal posten have enten køn som 'kvinde' eller hjemby som 'Chandigarh'. Elevens alder bør ikke være anden end '24'. Så der er to plader med rullenummer '4' og '5', som opfylder disse betingelser.
Eksempel 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
Output:
Der er kun én post i elevtabellen med køn som 'mand', hjembyen som 'Lucknow' og procentdelen af eleven skal være '75'. En elevs alder kan være 23 eller andet end 23.
Eksempel 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
Output:
I elevtabellen er der tre poster, som har køn som 'mand' og alder som '23'. Hjembyen er måske eller måske ikke 'Lucknow'. Desuden kan procentdelen muligvis være '75'.