Heim > Datenbank > MySQL-Tutorial > Die Verwendung von if- und case-Anweisungen in MySQL

Die Verwendung von if- und case-Anweisungen in MySQL

不言
Freigeben: 2019-05-13 13:20:08
Original
2348 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich eine Zusammenfassung der Verwendung von if- und case-Anweisungen in MySQL vor. In diesem Artikel wird die Verwendung von IF-Anweisungen als Ausdrücke und Flusskontrollanweisungen erläutert.

Die Verwendung von if- und case-Anweisungen in MySQL

Mysqls if kann als Ausdruck oder als Flusskontrollanweisung in einer gespeicherten Prozedur verwendet werden. Folgendes wird als Ausdruck verwendet:

IF-Ausdruck

IF(expr1,expr2,expr3)
Nach dem Login kopieren

Wenn expr1 TRUE ist (expr1 <> 0 und expr1 <> NULL), dann ist der Rückgabewert von IF() sonst expr2; ist Ausdruck3. Der Rückgabewert von IF() ist je nach Kontext entweder ein numerischer Wert oder ein String-Wert.

select *,if(sva=1,"男","女") as ssva from taname where sva != ""
Nach dem Login kopieren

if als Ausdruck kann auch mit CASE implementiert werden, wenn:

select CASE sva WHEN 1 THEN &#39;男&#39; ELSE &#39;女&#39; END as ssva from taname where sva != &#39;&#39;
Nach dem Login kopieren

Im Rückgabeergebnis der ersten Lösung gilt value=compare-value. Das Rückgabeergebnis des zweiten Szenarios ist das wahre Ergebnis des ersten Szenarios. Wenn kein passender Ergebniswert vorhanden ist, ist das Rückgabeergebnis das Ergebnis nach ELSE. Wenn kein ELSE-Teil vorhanden ist, ist der Rückgabewert NULL.

Zum Beispiel:

SELECT CASE 1 WHEN 1 THEN &#39;one&#39;
  WHEN 2 THEN &#39;two&#39; 
   ELSE &#39;more&#39; END
as testCol
Nach dem Login kopieren

gibt eins aus

IFNULL(expr1,expr2)

wenn expr1 nicht ist NULL, dann ist der Rückgabewert von IFNULL() expr1; andernfalls ist der Rückgabewert expr2. Der Rückgabewert von IFNULL() ist je nach Kontext, in dem er verwendet wird, entweder eine Zahl oder ein String.

mysql> SELECT IFNULL(1,0);        -> 1
mysql> SELECT IFNULL(NULL,10);        -> 10
mysql> SELECT IFNULL(1/0,10);        -> 10
mysql> SELECT IFNULL(1/0,&#39;yes&#39;);        -> &#39;yes&#39;
Nach dem Login kopieren

Der Standardergebniswert von IFNULL(expr1,expr2) ist der „allgemeinere“ der beiden Ausdrücke in der Reihenfolge STRING, REAL oder INTEGER.

IF ELSE wird als Flusskontrollanweisung verwendet, um

if zu verwenden, um bedingte Beurteilungen zu implementieren und verschiedene Operationen auszuführen, wenn unterschiedliche Bedingungen erfüllt sind , wir alle kennen die Rolle von if Okay, schauen wir uns an, wie man if in der gespeicherten MySQL-Prozedur verwendet.

IF search_condition THEN 
    statement_list  
[ELSEIF search_condition THEN]  
    statement_list ...  
[ELSE 
    statement_list]  
END IF
Nach dem Login kopieren

ähnelt der IF-Anweisung in PHP. Wenn die Bedingung „search_condition“ in IF festgelegt ist, wird die Anweisung „statement_list“ nach THEN ausgeführt. Andernfalls wird die Bedingung in „ELSEIF“ beurteilt Andernfalls werden andere Anweisungen ausgeführt. Wenn die Bedingungen aller Zweige nicht erfüllt sind, wird der ELSE-Zweig ausgeführt. search_condition ist ein bedingter Ausdruck, der aus bedingten Operatoren wie „=, <, <=, >, >=, !=" bestehen kann, und mehrere Ausdrücke können mit AND, OR und NOT kombiniert werden.

Erstellen Sie beispielsweise eine gespeicherte Prozedur, die die Note (Note) des Schülers anhand der Schülernummer (student_no) und der Kursnummer (course_no) abfragt und die Note und Note zurückgibt A-Level, diejenigen mit weniger als 90 Punkten und gleich oder gleich 80 Punkten sind Level B, diejenigen mit weniger als 80 Punkten und gleich oder gleich 70 Punkten sind Level C, und die Reihenfolge geht zu Level E. Dann lautet der Code zum Erstellen der gespeicherten Prozedur wie folgt:

create procedure dbname.proc_getGrade  
(stu_no varchar(20),cour_no varchar(10))  
BEGIN 
declare stu_grade float;  
select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no;  
if stu_grade>=90 then 
    select stu_grade,&#39;A&#39;;  
elseif stu_grade<90 and stu_grade>=80 then 
    select stu_grade,&#39;B&#39;;  
elseif stu_grade<80 and stu_grade>=70 then 
    select stu_grade,&#39;C&#39;;  
elseif stu_grade70 and stu_grade>=60 then 
    select stu_grade,&#39;D&#39;;  
else 
    select stu_grade,&#39;E&#39;;  
end if;  
END
Nach dem Login kopieren

Hinweis: IF ist eine Anweisung und nach END IF muss ein Semikolon „;“ hinzugefügt werden, um das Ende der Anweisung anzuzeigen gilt auch für andere Anweisungen wie CASE, LOOP usw. .

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Eine Frage zur Laravel-Route-Umleitung

Das obige ist der detaillierte Inhalt vonDie Verwendung von if- und case-Anweisungen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage