sql >> Databasteknik >  >> RDS >> Database

SQL WHERE Flera villkor

I det här ämnet kommer vi att lära oss hur du lägger till flera villkor med hjälp av WHERE-satsen.

Låt oss först förstå konceptet med WHERE-klausul.

WHERE-satsen används för att ange ett villkor vid hämtning av poster från en tabell.

WHERE-satsen används vanligtvis med SELECT-satsen i SQL

SELECT-frågan visar endast de poster som uppfyller villkoret som anges i WHERE-satsen

Det kan finnas ett eller flera villkor som anges i WHERE-satsvillkoret för en SELECT-fråga.

AND- och OR-operatorerna används för att kontrollera flera villkor med hjälp av WHERE-satsen i en enda fråga.

  • AND-operator med WHERE-sats

Närhelst AND-operatorn används mellan villkoren med WHERE-satsen för att kontrollera flera villkor i SELECT-frågan, visas resultaten när bara mer än ett villkor som anges i frågan är uppfyllt.

Syntax:

SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];

Exempel 1:

Betrakta elevtabellen nedan. Vi kommer att överväga samma tabell för alla följande exempel.

Student_RollNo Student_Name Student_Gender Student_MobileNumber Student_Hemstad Student_Age Student_Percentage
1 Rohit More Man 9890786123 Lucknow 23 75
2 Kunal Shah Man 7789056784 Chandigarh 20 68
3 Kartik Goenka Man 9908743576 Ahemdabad 22 92
4 Anupama Shah Kvinna 8890907656 Chandigarh 24 94
5 Snehal Jain Kvinna 8657983476 Surat 21 94

Låt oss nu se några exempel för att förstå detta koncept praktiskt.

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";

Utdata:

Det finns bara ett rekord i studenttabellen med rulle nummer 2, som har kön som man och hemstad som Chandigarh. Även om något av de angivna villkoren inte är uppfyllt, kommer i så fall inte utmatningen att vara densamma. Posten/posterna som visas kommer att vara olika, eller i vissa fall kan utdata vara en tom uppsättning om ingen post uppfyller båda villkoren.

Exempel 2:

mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;

Utdata:

Det finns bara en post med rullnummer '5' i elevtabellen, som har en ålder som är lika med '21' och en procentandel lika med '94'.

Exempel 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Utdata:

Bland alla poster i elevtabellen finns det bara en skiva med rullenummer '4', som har kön som 'man', hemorten som 'Chandigarh' och ålder är lika med '24'. Detta är den enda posten som uppfyller alla tre villkoren.

Exempel 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND  Student_Name = "Kartik Goenka" AND Student_Percentage = 92;

Utdata:

Bland alla poster i elevtabellen finns det bara en post med rullnummer '3' där alla tre villkoren är uppfyllda, d.v.s. kön som man, namn är lika med 'Kartik Goenka' och procent är lika med '92'.

  • ELLER operator med WHERE-sats

Närhelst OR-operatorn används mellan villkoren med WHERE-satsen för att kontrollera flera villkor i SELECT-frågan, visas resultaten när minst ett villkor är uppfyllt bland alla andra villkor som skrivs i en fråga.

Syntax:

SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];

Exempel 1:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";

Utdata:

I elevtabellen finns det fyra poster med rullnummer 1, 2, 3 och 4 som har kön som man eller hemstad som Chandigarh. Även om några specificerade villkor är uppfyllda, kommer den posten att betraktas som en del av utdata. I vissa fall kan utdata vara en tom uppsättning om ingen post uppfyller något av villkoren.

Exempel 2:

mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;

Utdata:

Det finns två posts rullningsnummer '4' och '5' i elevtabellen, som antingen har åldern lika med '21' eller procenten lika med '94'.

Exempel 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Utdata:

Bland alla poster i elevtabellen finns tre poster med rullnummer '2', '4' och '5', som har båda könet som 'kvinna'; hemstad som "Chandigarh" eller ålder är lika med "24". Detta är de poster som uppfyller något av de tre villkoren.

Exempel 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR  Student_Name = "Kartik Goenka" OR Student_Percentage = 92;

Utdata:

Bland alla poster i elevtabellen finns det tre poster med rullnummer '1', '2' och '3' där något av de tre villkoren är uppfyllt, d.v.s. kön som man, namn är lika med 'Kartik Goenka' eller procent är lika med '92'.

  • AND- och OR-operator med WHERE-sats i en enda fråga

I WHERE-satsfråga med en SELECT-sats kan vi också använda en kombination av AND- och OR-operatorer i en enda fråga. Syftet med att använda kombinationerna av OCH- och ELLER-operatorer i en enda fråga är att testa den högre nivån av komplicerade förhållanden.

Syntax:

SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];

Exempel 1:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Utdata:

Enligt villkoren i en fråga ska posten ha kön som "kvinna" och hemstad som "Chandigarh". Elevens ålder kan vara "24" eller inte. Så det finns bara en skiva med rullenummer "4", som uppfyller dessa villkor. Även om någon post har kön som "kvinna" och hemstad annan än "Chandigarh" eller vice versa, kommer den posten inte att beaktas i utdata.

Exempel 2:

SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Utdata:

Enligt villkoren i en fråga ska posten ha antingen kön som "kvinna" eller hemstad som "Chandigarh". Elevens ålder bör inte vara annan än "24". Så det finns två skivor med rullnummer "4" och "5" som uppfyller dessa villkor.

Exempel 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;

Utdata:

Det finns bara en post i elevtabellen med kön som "man", hemorten som "Lucknow" och andelen elev ska vara "75". En elevs ålder kan vara 23 eller annan än 23.

Exempel 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;

Utdata:

I elevtabellen finns tre poster som har kön som "man" och ålder som "23". Hemstaden kan vara "Lucknow" eller inte. Dessutom kan procentandelen vara "75".


  1. Hur man släpper en kolumn med en begränsning i SQL Server

  2. Förstå skillnaderna mellan tabell- och transaktions-API:er

  3. Tillkännage ClusterControl 1.4.1 - ProxySQL Edition

  4. Migration från Oracle Database till MariaDB - A Deep Dive