MySQL CASE-udtryk er en del af kontrolflow-funktionen, der giver os mulighed for at skrive en hvis-andet eller hvis-så-andet logik til en forespørgsel. Dette udtryk kan bruges overalt, der bruger et gyldigt program eller forespørgsel, såsom SELECT, WHERE, ORDER BY-sætning osv.
CASE-udtrykket validerer forskellige betingelser og returnerer resultatet, når den første betingelse er rigtigt . Når betingelsen er opfyldt, stopper den med at krydse og giver output. Hvis den ikke finder nogen betingelse sand, udfører den andet blok . Når den anden blok ikke findes, returnerer den en NUL værdi. Hovedmålet med MySQL CASE-sætning er at håndtere flere IF-sætninger i SELECT-sætningen.
Vi kan bruge CASE-sætningen på to måder, som er som følger:
1. Simpel CASE-udsagn:
Den første metode er at tage en værdi og matche den med den givne sætning, som vist nedenfor.
bash hvis tilstand
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_værdi sammenligning bliver sand. Ellers vil den returnere else-klausulen.
Eksempel
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Produktion
Efter den vellykkede udførelse af ovenstående kommando, vil vi se følgende output.
2. Søgte CASE-udsagn:
Den anden metode er at overveje en søgetilstand i HVORNÅR klausuler, og hvis den finder, returner resultatet i den tilsvarende THEN-klausul. Ellers vil den returnere else-klausulen. Hvis andet klausul ikke er angivet, vil det returnere en NULL-værdi.
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;
Produktion
Returtype
CASE-udtrykket returnerer resultatet afhængigt af konteksten, hvor det bruges. For eksempel:
- Hvis det bruges i strengkonteksten, returnerer det strengresultatet.
- Hvis det bruges i en numerisk sammenhæng, returnerer det heltal, flydende, decimalværdi.
Understøttelse af MySQL-version
CASE-sætningen kan understøtte følgende MySQL-versioner:
- 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
Lad os lave en tabel ' studerende ' og udfør CASE-sætningen på denne tabel.
matrix i c-sprog
I ovenstående tabel kan vi se, at klasse kolonne indeholder den korte form for den studerendes afdeling. Derfor vil vi ændre afdelingens korte form med den fulde form. Udfør nu følgende forespørgsel for at udføre denne handling.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Efter den vellykkede udførelse af ovenstående forespørgsel får vi følgende output. Her kan vi se, at afdeling kolonne indeholder fuld form i stedet for en kort formular.