MySQL CASE-uttrykk er en del av kontrollflytfunksjonen som gir oss mulighet til å skrive en hvis-annet eller hvis-så-annet logikk til en spørring. Dette uttrykket kan brukes hvor som helst som bruker et gyldig program eller spørring, for eksempel SELECT, WHERE, ORDER BY-klausul, etc.
CASE-uttrykket validerer ulike forhold og returnerer resultatet når den første betingelsen er ekte . Når betingelsen er oppfylt, slutter den å krysse og gir utgangen. Hvis den ikke finner noen tilstand sann, kjører den annet blokk . Når den andre blokken ikke blir funnet, returnerer den en NULL verdi. Hovedmålet med MySQL CASE-setningen er å håndtere flere IF-setninger i SELECT-leddet.
Vi kan bruke CASE-setningen på to måter, som er som følger:
1. Enkel CASE-setning:
Den første metoden er å ta en verdi og matche den med den gitte setningen, som vist nedenfor.
kart med maskinskrift
Syntaks
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Det returnerer resultatet når den første sammenligne_verdi sammenligning blir sann. Ellers vil den returnere else-klausulen.
Eksempel
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Produksjon
Etter vellykket utførelse av kommandoen ovenfor, vil vi se følgende utgang.
2. Søkte CASE-uttalelse:
Den andre metoden er å vurdere en søketilstand i NÅR klausuler, og hvis den finner det, returner resultatet i den tilsvarende THEN-klausulen. Ellers vil den returnere else-klausulen. Hvis en annen klausul ikke er spesifisert, vil den returnere en NULL-verdi.
Syntaks
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Eksempel
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Produksjon
Returtype
CASE-uttrykket returnerer resultatet avhengig av konteksten der det brukes. For eksempel:
- Hvis den brukes i strengkonteksten, returnerer den strengresultatet.
- Hvis den brukes i en numerisk kontekst, returnerer den heltall, float, desimalverdi.
Støtte for MySQL-versjon
CASE-setningen kan støtte følgende MySQL-versjoner:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
- MySQL 3.23.3
La oss lage en tabell ' studenter ' og utfør CASE-setningen på denne tabellen.
matrise på c-språk
I tabellen ovenfor kan vi se at klasse kolonne inneholder kortformen til studentens avdeling. Derfor skal vi endre kortformen på avdelingen med fullformen. Utfør nå følgende spørring for å utføre denne operasjonen.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Etter vellykket utførelse av spørringen ovenfor, vil vi få følgende utgang. Her kan vi se at avdeling kolonne inneholder full form i stedet for en kort form.