MySQLs if kann als Ausdruck oder als Prozesssteuerungsanweisung in einer gespeicherten Prozedur verwendet werden. In diesem Artikel geht es hauptsächlich um die regelmäßige Verwendung von if-Anweisungen in MySQL, die einen gewissen Lernwert haben .
IF(expr1,expr2,expr3)
Wenn expr1 TRUE ist (expr1 <> 0 und expr1 <> NULL), dann gibt IF() den Wert zurück ist Ausdruck2; andernfalls ist der Rückgabewert 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 != ""
select CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where sva != ''
Im Rückgabeergebnis der ersten Lösung ist 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' ENDas testCol
gibt eins aus
Wenn expr1 nicht NULL ist, ist der Rückgabewert von IFNULL() ist Ausdruck1; andernfalls ist der Rückgabewert Ausdruck2. Der Rückgabewert von IFNULL() ist je nach Kontext, in dem er verwendet wird, entweder eine Zahl oder ein String. Der Standardergebniswert von
mysql> SELECT IFNULL(1,0); -> 1mysql> SELECT IFNULL(NULL,10); -> 10mysql> SELECT IFNULL(1/0,10); -> 10mysql> SELECT IFNULL(1/0,'yes'); -> 'yes'
IFNULL(expr1,expr2)
ist der „generischere“ der beiden Ausdrücke in der Reihenfolge STRING, REAL oder INTEGER.
if als Flusskontrollanweisung, um bedingte Beurteilungen zu implementieren und verschiedene Operationen auszuführen, wenn unterschiedliche Bedingungen erfüllt sind. Solange wir Programmieren lernen, kennen wir alle die Rolle von if. Werfen wir einen Blick darauf, wie if in gespeicherten MySQL-Prozeduren verwendet wird.
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. .
Verwandte Tutorials: MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die if-Anweisung in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!