In dit onderwerp leren we hoe u meerdere voorwaarden kunt toevoegen met behulp van de WHERE-component.
Laten we eerst het concept van de WHERE-clausule begrijpen.
WHERE-component wordt gebruikt om een voorwaarde op te geven tijdens het ophalen van records uit een tabel.
WHERE-component wordt over het algemeen gebruikt met de SELECT-instructie in SQL
De SELECT-query geeft alleen de records weer die voldoen aan de voorwaarde die is opgegeven in de WHERE-component
Er kunnen een of meer voorwaarden zijn gespecificeerd in de WHERE-clausulevoorwaarde van een SELECT-query.
De operators AND en OR worden gebruikt om meerdere voorwaarden te controleren met behulp van de WHERE-component in een enkele query.
- AND-operator met WHERE-clausule
Telkens wanneer de operator AND wordt gebruikt tussen de voorwaarden met de WHERE-clausule om meerdere voorwaarden in de SELECT-query te controleren, worden de resultaten weergegeven wanneer aan slechts meer dan één voorwaarde in de query wordt voldaan.
Syntaxis:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
Voorbeeld 1:
Beschouw de onderstaande leerlingentabel. We zullen dezelfde tabel beschouwen voor alle volgende voorbeelden.
Student_RollNo | Naam leerling | Student_Gender | Student_MobileNumber | Student_HomeTown | Student_Age | Student_Percentage |
1 | Rohit Meer | Man | 9890786123 | Geluk | 23 | 75 |
2 | Kunal Shah | Man | 7789056784 | Chandigarh | 20 | 68 |
3 | Kartik Goenka | Man | 9908743576 | Ahemdabad | 22 | 92 |
4 | Anupama Sjah | Vrouw | 8890907656 | Chandigarh | 24 | 94 |
5 | Snehal Jain | Vrouw | 8657983476 | Soera | 21 | 94 |
Laten we nu enkele voorbeelden bekijken om dit concept praktisch te begrijpen.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
Uitvoer:
Er is slechts één record in de studententabel met rolnummer 2, met het geslacht als man en de geboorteplaats als Chandigarh. Zelfs als aan een van de gespecificeerde voorwaarden niet wordt voldaan, zal de uitvoer in dat geval niet hetzelfde zijn. De weergegeven record/records zijn anders, of in sommige gevallen kan de uitvoer een lege set zijn als geen enkele record aan beide voorwaarden voldoet.
Voorbeeld 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
Uitvoer:
Er is slechts één record met rolnummer '5' in de leerlingentabel, waarvan de leeftijd gelijk is aan '21' en het percentage gelijk aan '94'.
Voorbeeld 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Uitvoer:
Van alle records in de studententabel is er slechts één record met rolnummer '4', met het geslacht als 'mannelijk', de geboorteplaats als 'Chandigarh' en de leeftijd is gelijk aan '24'. Dit is het enige record dat aan alle drie de voorwaarden voldoet.
Voorbeeld 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
Uitvoer:
Van alle records in de studententabel is er slechts één record met rolnummer '3' waarin aan alle drie de voorwaarden is voldaan, d.w.z. geslacht als man, naam is gelijk aan 'Kartik Goenka' en percentage is gelijk aan '92'.
- OR-operator met WHERE-clausule
Telkens wanneer de operator OR wordt gebruikt tussen de voorwaarden met de WHERE-clausule om meerdere voorwaarden in de SELECT-query te controleren, worden de resultaten weergegeven wanneer aan ten minste één voorwaarde wordt voldaan van alle andere voorwaarden die in een query zijn geschreven.
Syntaxis:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
Voorbeeld 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
Uitvoer:
In de studententabel zijn er vier records met rolnummer 1, 2, 3 en 4 met het geslacht als mannelijk of geboorteplaats als Chandigarh. Zelfs als aan bepaalde voorwaarden wordt voldaan, wordt dat record als onderdeel van de uitvoer beschouwd. In sommige gevallen kan de uitvoer een lege set zijn als geen record aan een van beide voorwaarden voldoet.
Voorbeeld 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
Uitvoer:
Er zijn twee records met nummers '4' en '5' in de leerlingentabel, waarvan de leeftijd ofwel gelijk is aan '21' of het percentage gelijk is aan '94'.
Voorbeeld 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Uitvoer:
Van alle records in de studententabel zijn er drie records met rolnummer '2', '4' en '5', die beide geslachten als 'vrouwelijk' hebben; geboorteplaats als 'Chandigarh' of leeftijd is gelijk aan '24'. Dit zijn de records die aan een van de drie voorwaarden voldoen.
Voorbeeld 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
Uitvoer:
Van alle records in de studententabel zijn er drie records met rolnummers '1', '2' en '3' waarin aan een van de drie voorwaarden is voldaan, d.w.z. geslacht als man, naam is gelijk aan 'Kartik Goenka' of percentage is gelijk aan '92'.
- AND- en OR-operator met WHERE-component in een enkele query
In een WHERE-componentquery met een SELECT-instructie kunnen we ook een combinatie van AND- en OR-operators in één query gebruiken. Het doel van het gebruik van de combinaties van AND- en OR-operators in een enkele query is om het hogere niveau van gecompliceerde voorwaarden te testen.
Syntaxis:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
Voorbeeld 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Uitvoer:
Volgens de voorwaarden in een zoekopdracht moet het geslacht het geslacht 'vrouwelijk' en de woonplaats 'Chandigarh' hebben. De leeftijd van de student kan al dan niet '24' zijn. Er is dus maar één plaat met rolnummer ‘4’ die aan deze voorwaarden voldoet. Zelfs als een record het geslacht heeft als 'vrouw' en een andere woonplaats heeft dan 'Chandigarh' of vice versa, wordt dat record niet in de uitvoer meegenomen.
Voorbeeld 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Uitvoer:
Volgens de voorwaarden in een zoekopdracht, moet het record het geslacht hebben als 'vrouw' of de woonplaats als 'Chandigarh'. De leeftijd van de student mag niet anders zijn dan '24'. Er zijn dus twee records met rolnummer '4' en '5' die aan deze voorwaarden voldoen.
Voorbeeld 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
Uitvoer:
Er is slechts één record in de studententabel met het geslacht als 'man', de woonplaats als 'Luckknow' en het percentage van de student moet '75' zijn. De leeftijd van een student kan 23 of anders dan 23 zijn.
Voorbeeld 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
Uitvoer:
In de studententabel zijn er drie records met geslacht als 'mannelijk' en leeftijd als '23'. De geboorteplaats kan al dan niet 'Lucknow' zijn. Ook kan het percentage al dan niet '75' zijn.