MySQL CASE výraz je součástí funkce řízení toku, která nám umožňuje psát pokud-jinak nebo pokud-pak-jinak logiku k dotazu. Tento výraz lze použít kdekoli, kde se používá platný program nebo dotaz, jako je klauzule SELECT, WHERE, ORDER BY atd.
Výraz CASE ověřuje různé podmínky a vrací výsledek, když je první podmínka skutečný . Jakmile je podmínka splněna, zastaví procházení a vydá výstup. Pokud neshledá žádnou podmínku pravdivou, provede jinak blokovat . Když blok else není nalezen, vrátí a NULA hodnota. Hlavním cílem MySQL Příkaz CASE se má zabývat více příkazy IF v klauzuli SELECT.
Příkaz CASE můžeme použít dvěma způsoby, které jsou následující:
1. Jednoduchý příkaz CASE:
První metodou je vzít hodnotu a porovnat ji s daným příkazem, jak je uvedeno níže.
vyměnit vše
Syntax
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Vrátí výsledek při prvním porovnat_hodnotu srovnání se stává pravdou. V opačném případě vrátí klauzuli else.
Příklad
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Výstup
Po úspěšném provedení výše uvedeného příkazu uvidíme následující výstup.
2. Hledaný výraz CASE:
Druhá metoda je zvážit a search_condition v KDYŽ klauzule, a pokud najde, vrátí výsledek v odpovídající klauzuli THEN. V opačném případě vrátí klauzuli else. Pokud klauzule else není zadaná, vrátí hodnotu NULL.
Syntax
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Příklad
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Výstup
přepsání metody v Javě
Typ návratu
Výraz CASE vrátí výsledek v závislosti na kontextu, kde je použit. Například:
- Pokud je použit v kontextu řetězce, vrátí výsledek řetězce.
- Pokud se použije v číselném kontextu, vrátí celočíselnou, plovoucí a desetinnou hodnotu.
Podpora verze MySQL
Příkaz CASE může podporovat následující verze MySQL:
- 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
Pojďme vytvořit tabulku' studentů a proveďte v této tabulce příkaz CASE.
Ve výše uvedené tabulce můžeme vidět, že třída sloupec obsahuje zkrácenou formu studentského oddělení. Proto se chystáme změnit krátkou formu oddělení za plnou. Nyní proveďte následující dotaz k provedení této operace.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Po úspěšném provedení výše uvedeného dotazu získáme následující výstup. Zde můžeme vidět, že oddělení sloupec obsahuje plný tvar namísto krátkého formuláře.