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.
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)
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 != ""
if als Ausdruck kann auch mit CASE implementiert werden, wenn:
select CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where sva != ''
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 'one' WHEN 2 THEN 'two' ELSE 'more' END as testCol
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,'yes'); -> 'yes'
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
ä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,'A'; elseif stu_grade<90 and stu_grade>=80 then select stu_grade,'B'; elseif stu_grade<80 and stu_grade>=70 then select stu_grade,'C'; elseif stu_grade70 and stu_grade>=60 then select stu_grade,'D'; else select stu_grade,'E'; end if; END
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!