MySQL CASE изразът е част от функцията на контролния поток, която ни позволява да напишем if-else или if-then-else логика на заявка. Този израз може да се използва навсякъде, където се използва валидна програма или заявка, като клауза SELECT, WHERE, ORDER BY и т.н.
Изразът CASE валидира различни условия и връща резултата, когато първото условие е изпълнено вярно . След като условието е изпълнено, той спира преминаването и дава изхода. Ако не намери нито едно условие вярно, той изпълнява иначе блок . Когато блокът else не бъде намерен, той връща a НУЛА стойност. Основната цел на MySQL Операторът CASE трябва да работи с множество изрази IF в клаузата SELECT.
Можем да използваме оператора CASE по два начина, които са както следва:
1. Прост оператор CASE:
Първият метод е да вземете стойност и да я съпоставите с дадения оператор, както е показано по-долу.
javascript за цикъл
Синтаксис
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Връща резултата, когато първият сравни_стойност сравнението става вярно. В противен случай ще върне клаузата else.
Пример
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Изход
След успешното изпълнение на горната команда ще видим следния резултат.
2. Търсен оператор CASE:
Вторият метод е да се разгледа a условие_за_търсене в КОГА клаузи и ако намери, връща резултата в съответната клауза THEN. В противен случай ще върне клаузата else. Ако клаузата else не е посочена, тя ще върне NULL стойност.
Синтаксис
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Пример
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Изход
Тип връщане
Изразът CASE връща резултата в зависимост от контекста, в който се използва. Например:
- Ако се използва в контекста на низа, той връща резултата от низа.
- Ако се използва в числов контекст, той връща цело число, float, десетична стойност.
Поддръжка на MySQL версия
Изявлението CASE може да поддържа следните версии на 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
Нека създадем таблица ' студенти ' и изпълнете оператора CASE върху тази таблица.
блокирани контакти
В горната таблица можем да видим, че колона клас съдържа кратката форма на студентския отдел. Затова ще сменим кратката форма на отдела с пълната. Сега изпълнете следната заявка, за да извършите тази операция.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
След успешното изпълнение на горната заявка ще получим следния резултат. Тук можем да видим, че отдел колоната съдържа пълен формуляр вместо кратък формуляр.