(13) Process Control in mysql and 13mysql Process Control
Overview
In mysql, you can use the if/case/loop/leave/iterate/repeat/while statement to control the process.
If statement
If statement,Similar to if statements in advanced languages (c/c ++/php/java.
if search_condition then statement_list[elseif search_condition then statement_list]...[else statement_list]end if
Example
if mobile='13911113222' and psw='720717' then set useridx = 10008888;else if mobile='13911113333' and psw='720717' then set useridx = 10006666;else select UserID into useridx from User_ID order by rand() limit 1;end if;
Case statement
Case to implement Branch selection that is more complex than if,Similar to switch statements in advanced languages.
case case_value when when_value then statement_list [when when_value then statement_list]... [else statement_list]end case
Example
case sid when 2 then set @x1 = 2; else set @x1 = 1;end case
Loop, leave, and iterate statements
# Loop syntax [begin_label:] loopstatement_listend loop [end_label]
Example
set @x=0;set @x2=0;ins:loop set @x=@x+1; if @x=10 then leave ins; elseif mod(@x,2)=0 then iterate ins; end if set @x2=@x2+1;end loop ins;
In the preceding example, the variable x is added to the loop by 1. When x = 10, the loop is exited. When the modulus of x 2 is not 0, the variable x2 is added with 1.
Repeat statement
The repeat statement is a conditional loop control statement,Similar to do... while statements in advanced languages.
[begin_lable:] repeat statement_listuntil search_conditionend repeat [end_lable]
Example
set @x=0;repeat set @x = @x +1;until @x>10 end repeat;
While statement
The while statement is a conditional loop control statement,Similar to the while statement in advanced languages.
[begin_label:] while search_condition do statement_listend while [end_label]
Example
set @x=10;while @x1<0 do set @x = @x-1;end while;
For how to use Process Control in stored procedures or functions, refer to the following link:
(9) stored procedures and user-defined functions in mysql