Med en enorm mängd data som genereras varje dag är det viktigt att hämta data baserat på några få förhållanden. I den här artikeln om CASE-satsen i MySQL kommer jag att diskutera hur man använder den här satsen för att hämta data om ett enstaka villkor eller flera villkor.
Följande ämnen kommer att behandlas i den här artikeln:
- Introduktion till SQL
- Vad är syftet med SQL?
- CASE i MySQL
- Syntax för CASE i MySQL
- Exempel på CASE i MySQL
Vad är SQL?
SQL är ett domänspecifikt språk som används flitigt i programmering. Den är designad för att hantera data som finns i ett relationsdatabashanteringssystem (RDBMS), eller för strömbehandling i ett relationsdataströmhanteringssystem. Generellt sett är SQL ett standardspråk som hjälper till att lagra, manipulera och hämta data i databaser.
Vad är syftet med SQL?
SQL används i princip för att kommunicera med en databas. Enligt ANSI (American National Standards Institute) anses det vara standardspråket för relationsdatabashanteringssystem (RDBMS). Vi använder SQL-satser för att utföra uppgifter som att uppdatera, infoga, ta bort eller hämta data från en databas.
Vad är CASE-satsen i MySQL?
CASE-sats i MySQL är ett sätt att hantera if/else-logiken. Det är en sorts kontrollsats som bildar cellen av programmeringsspråk eftersom de kontrollerar exekveringen av andra uppsättningar satser.
CASE-satsen går igenom olika villkor och returnerar värden när och när det första villkoret är uppfyllt (som en IF-THEN-ELSE-sats på lågnivåspråk). När ett villkor är sant kommer det att sluta korsa och returnera resultatet. Om inget av villkoren är sant, returnerar det värdet i ELSE-satsen.
Om det inte finns någon ELSE-sats och inget av villkoren är sant, returnerar den helt enkelt NULL.
Syntax för CASE-satsen i MySQL
Grundläggande syntax:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionx THEN resultx ELSE result END;
Det kan finnas två sätt att uppnå CASE-Switch-satser:
- Tar en variabel som heter case_value och matchar den med någon statement_list.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END;
- Tänk på ett sökvillkor istället för variabellikhet och kör satslistan i enlighet med detta.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END;
Exempel på CASE-sats i MySQL
Låt oss överväga en tabell:STUDENT
Studenttabell
Student-ID | Namn | Avdelning | Kön |
001 | Akash | CS | M |
002 | Bikram | Mek | M |
003 | Chadan | CS | M |
004 | Deepak | CS | M |
005 | Elicia | EC | F |
006 | Fernandes | Mek | F |
Exempel: Tänk på ett scenario där du måste ändra avdelningsnamnen till deras fullständiga former. Om avdelningens namn är CS, bör det konverteras till datavetenskap; På samma sätt bör Mech konverteras till Mechanical.och EC till Electronic and Communication.
Exempelfråga
CASE department_name WHEN 'CS' THEN UPDATE Student SET department='Computer Science'; WHEN 'EC' THEN UPDATE Student SET department='Electronics and Communication'; ELSE UPDATE Student SET department=’Mechanical'; END;
Utdata:
Motsvarande avdelningsnamn döps om enligt följande:
Student-ID | Namn | Avdelning | Kön |
001 | Akash | Datavetenskap | M |
002 | Bikram | Mekanisk | M |
003 | Chadan | Datavetenskap | M |
004 | Deepak | Datavetenskap | M |
005 | Elicia | Elektronik och kommunikation | F |
006 | Fernandes | Mekanisk | F |
Exempel: Tänk på ett scenario där du måste välja alla fält som motsvarar elevtabellen. Eftersom värdena som skrivs i fältet Gender är enstaka tecken (M/F), låt oss skriva en fråga för att ändra M till Man och F till Female.
Exempelfråga
SELECT Student ID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Student;
Utdata:
Student-ID | Namn | Avdelning | Kön |
001 | Akash | Datavetenskap | Man |
002 | Bikram | Mekanisk | Man |
003 | Chadan | Datavetenskap | Man |
004 | Deepak | Datavetenskap | Man |
005 | Elicia | Elektronik och kommunikation | Kvinna |
006 | Fernandes | Mekanisk | Kvinna |
CASE-växel i SQL-anpassad sortering
Exempelfråga
CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS SELECT StudentID, Name, Gender, Department FROM Student ORDER BY CASE WHEN @ColToSort='Department' THEN Department WHEN @ColToSort='Name' THEN Name WHEN @ColToSort='Gender' THEN Gender ElSE StudentID END;
Utdata:
Utdata sorteras enligt det angivna fältet.
Ovanstående procedur (funktion) tar en variabel av varchar-datatyp som sitt argument och sorterar på grundval av detta tuplarna i elevtabellen. Dessutom kan vi också använda CASE-satser för att jämföra förhållanden.
Exempel: Tänk på en tabell med namnet KONTAKTER som innehåller kontakt-ID och ett webbplats-ID. Enligt dessa uppgifter kan en användare navigera genom dessa länkar:'TechOnTheNet.com' eller 'CheckYourMath.com'.
Exempelfråga
SELECT CASE WHEN contact_id < 1000 THEN 'TechOnTheNet.com' WHEN website_id = 2 THEN 'CheckYourMath.com' END FROM contacts;
Det måste vara klart vid det här laget att när man skriver falluttalanden i MySQL är en viktig faktor att "ordna dem på rätt sätt". Kom bara ihåg att villkoren utvärderas i den ordning du anger. När något villkor blir sant, kommer CASE-satsen att returnera resultatet och inte utvärdera villkoren ytterligare. Så var försiktig när du väljer i vilken ordning du listar dina villkor.
Om du vill lära dig mer om MySQL och lära känna denna relationsdatabas med öppen källkod, kolla in vår MySQL DBA Certification Training som kommer med instruktörsledd liveutbildning och verklig- erfarenhet av livsprojekt. Den här utbildningen hjälper dig att förstå MySQL på djupet och hjälper dig att behärska ämnet.
Har du en fråga till oss? Vänligen nämn det i kommentarsektionen i denna "CASE Statement in MySQL" så återkommer vi till dig.