1. Einführung in die if-Anweisung
Die if-Anweisung ist eine verzweigte Strukturanweisung, die verschiedene Operationen basierend auf Bedingungen ausführt. Die if-Anweisung besteht normalerweise aus einem bedingten Ausdruck und einer oder mehreren Anweisungen. Voraussetzung für die Ausführung der Anweisungen in der if-Anweisung ist, dass der Wert des bedingten Ausdrucks wahr ist, andernfalls wird der if-Anweisungsblock übersprungen. Die Syntax der
if-Anweisung lautet wie folgt:
if(condition)then statement; else statement; end if;
wobei Bedingung der bedingte Ausdruck und Anweisung die SQL-Anweisung ist, die ausgeführt werden muss.
2. Einführung in verschachtelte if-Anweisungen
Eine verschachtelte if-Anweisung befindet sich in einem if-Anweisungsblock, in dem ein oder mehrere if-Anweisungsblöcke verschachtelt sind. Der Zweck besteht darin, verschiedene Operationen basierend auf unterschiedlichen Bedingungen auszuführen. Die Syntax verschachtelter if-Anweisungen lautet wie folgt:
rrreeBedingung1 ist der bedingte Ausdruck der ersten Ebene, wenn; Bedingung3 der bedingte Ausdruck der ersten if-Anweisung ist; ist die auszuführende SQL-Anweisung.
3. Beispiel für verschachtelte if-Anweisungen
Das Folgende ist ein Beispiel für eine gespeicherte Prozedur, die verschachtelte if-Anweisungen verwendet:
if(condition1)then statement; if(condition2)then statement; else statement; end if; else if(condition3)then statement; else statement; end if;
Diese gespeicherte Prozedur wird verwendet, um die Leistung des Schülers basierend auf der Punktzahl des Schülers zu ermitteln:
Wenn die Punktzahl größer als 90 Punkte ist, ist sie ausgezeichnet. Wenn sie 100 Punkte beträgt, wird „volle Punktzahl“ hinzugefügt eine bestandene Note;
Wenn die Punktzahl weniger als 60 Punkte beträgt, handelt es sich um eine nicht bestandene Note.
Die gespeicherte Prozedur kann über den Aufrufbefehl aufgerufen werden. Die Syntax lautet wie folgt: delimiter //
create procedure test_if_nested(
in student_name varchar(50),
out result_msg varchar(50)
)
begin
declare student_score int;
select score into student_score from student where name = student_name;
if(student_score >= 90)then
set result_msg = '优秀';
if(student_score = 100)then
set result_msg = concat(result_msg, ',满分');
end if;
else if(student_score >= 60)then
set result_msg = '及格';
else
set result_msg = '不及格';
end if;
end //
delimiter ;
Dabei ist procedure_name der Name der gespeicherten Prozedur, Argument1, Argument2 usw . sind die Parameter der gespeicherten Prozedur.
Um beispielsweise die obige gespeicherte Prozedur aufzurufen, können Sie den folgenden Befehl verwenden:
call procedure_name(argument1, argument2, ...);
Übergeben Sie einen Schülernamensparameter und geben Sie das Ergebnis über den Out-Parameter aus. Das Ergebnis ist wie folgt:
call test_if_nested('张三', @result_msg); select @result_msg as result;
Durch die obige Aufrufmethode können wir die Punktzahl des Schülers anhand seines Namens ermitteln und das Niveau des Schülers anhand der Punktzahl beurteilen.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie verschachtelte if-Anweisungen in gespeicherten MySQL-Prozeduren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!