logo

MySQL CASE-uttrykk

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.

MySQL CASE-uttrykk

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

MySQL CASE-uttrykk

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

MySQL CASE-uttrykk

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.

MySQL CASE-uttrykk