Expresia MySQL CASE este o parte a funcției fluxului de control care ne oferă să scriem un dacă-altfel sau dacă-atunci-altfel logica unei interogări. Această expresie poate fi folosită oriunde care utilizează un program sau o interogare validă, cum ar fi clauza SELECT, WHERE, ORDER BY etc.
Expresia CASE validează diferite condiții și returnează rezultatul când este prima condiție Adevărat . Odată ce condiția este îndeplinită, se oprește traversarea și dă ieșirea. Dacă nu va găsi nicio condiție adevărată, execută altfel blocați . Când blocul else nu este găsit, returnează a NUL valoare. Scopul principal al MySQL Instrucțiunea CASE este de a trata mai multe instrucțiuni IF din clauza SELECT.
Putem folosi instrucțiunea CASE în două moduri, care sunt după cum urmează:
1. Declarație CASE simplă:
Prima metodă este de a lua o valoare și de a o potrivi cu instrucțiunea dată, așa cum se arată mai jos.
regexp_like în mysql
Sintaxă
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Acesta returnează rezultatul când este primul compara_valoare comparația devine adevărată. În caz contrar, va returna clauza else.
Exemplu
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Ieșire
După executarea cu succes a comenzii de mai sus, vom vedea următoarea ieșire.
2. Instrucțiunea CASE căutată:
A doua metodă este de a lua în considerare a condiție_căutare în CÂND clauze și, dacă găsește, returnează rezultatul în clauza THEN corespunzătoare. În caz contrar, va returna clauza else. Dacă clauza else nu este specificată, va returna o valoare NULL.
Sintaxă
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Exemplu
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Ieșire
Tip de returnare
Expresia CASE returnează rezultatul în funcție de contextul în care este utilizată. De exemplu:
- Dacă este folosit în contextul șirului, returnează rezultatul șirului.
- Dacă este folosit într-un context numeric, returnează valoarea întreagă, flotantă, zecimală.
Suport pentru versiunea MySQL
Declarația CASE poate suporta următoarele versiuni MySQL:
obiect java la json
- 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
Să creăm un tabel' elevi ' și executați instrucțiunea CASE pe acest tabel.
În tabelul de mai sus, putem vedea că coloana clasei conţine forma scurtă a catedrei studentului. De aceea, vom schimba forma scurtă a departamentului cu forma completă. Acum, executați următoarea interogare pentru a face această operație.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
După executarea cu succes a interogării de mai sus, vom obține următoarea ieșire. Aici, putem vedea că departament coloana conține forma completă în loc de o formă scurtă.