国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql流程控制語句總結

2024-07-24 12:38:49
字體:
來源:轉載
供稿:網友

以前我們大多數據在用到條件判斷時都會有用到if else下面我們要介紹是mysql if else case ifnull等這些命令語句的用法介紹.

mysql中有如下的幾個的控制流程的語句:

1)case,代碼如下:

  1. // Below will return zero  
  2. SELECT CASE 0 WHEN 0 THEN 'zero' WHEN 1 THEN 'one' ELSE 'no one' END;  
  3.  
  4. // Below will return true  
  5. SELECT CASE WHEN 5>2 THEN 'true' ELSE 'false' END;   

實例,代碼如下:

  1. CASE case_value 
  2.  
  3. WHEN when_value THEN statement_list 
  4.  
  5. [WHEN when_value THEN statement_list] ... 
  6.  
  7. [ELSE statement_list] 
  8.  
  9. END CASE  
  10.  
  11. --或者 
  12.  
  13. CASE  
  14.  
  15. WHEN search_condition THEN statement_list 
  16.  
  17. [WHEN search_condition THEN statement_list] ... 
  18.  
  19. [ELSE statement_list] 
  20.  
  21. END CASE  

2)if 語句,代碼如下:

  1. SELECT IF(expr1,expr2,expr3); 
  2.  
  3. // return yes  
  4. SELECT IF(1<5,'yes','no'); 

有三個參數,如果第1個表達式返回true,則返回表達式2,否則返回表達式3.

實例,代碼如下:

  1. create procedure dbname.proc_getGrade 
  2.  
  3. (stu_no varchar(20),cour_no varchar(10)) 
  4.  
  5. BEGIN  
  6.  
  7. declare stu_grade float
  8.  
  9. select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no; 
  10.  
  11. if stu_grade>=90 then  
  12.  
  13. select stu_grade,'A'
  14.  
  15. elseif stu_grade<90 and stu_grade>=80 then  
  16.  
  17. select stu_grade,'B'
  18.  
  19. elseif stu_grade<80 and stu_grade>=70 then  
  20.  
  21. select stu_grade,'C'
  22.  
  23. elseif stu_grade70 and stu_grade>=60 then  
  24. --Vevb.com 
  25. select stu_grade,'D'
  26.  
  27. else  
  28.  
  29. select stu_grade,'E'
  30.  
  31. end if; 
  32.  
  33. END  

3)ifnull

如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2,IFNULL()返回一個數字或字符串值,取決于它被使用的上下文環境,代碼如下:

  1. mysql> select IFNULL(1,0);       
  2.                      -> 1       
  3. mysql> select IFNULL(0,10);       
  4.                      -> 0       
  5. mysql> select IFNULL(1/0,10);       
  6.                      -> 10       
  7. mysql> select IFNULL(1/0,yes);       
  8.                      -> yes 

IF(expr1,expr2,expr3)

如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否則它返回expr3,IF()返回一個數字或字符串值,取決于它被使用的上下文,代碼如下:

  1. mysql> select IF(1>2,2,3);       
  2.                      -> 3       
  3. mysql> select IF(1<2,yes,no);       
  4.                      -> yes      
  5. mysql> select IF(strcmp(test,test1),yes,no);       
  6.                      -> no 

expr1作為整數值被計算,它意味著如果你正在測試浮點或字符串值,你應該使用一個比較操作來做,代碼如下:

  1. mysql> select IF(0.1,1,0);       
  2.                      -> 0       
  3. mysql> select IF(0.1<>0,1,0);       
  4.                      -> 1 

在上面的第一種情況中,IF(0.1)返回0,因為0.1被變換到整數值,導致測試IF(0),這可能不是你期望的,在第二種情況中,比較測試原來的浮點值看它是否是非零,比較的結果被用作一個整數.

4)nullif,代碼如下:

SELECT NULLIF(expr1,expr2);如果表達式1=表達式2,則返回null,否則返回第1個表達式,代碼如下:

  1. SELECT NULLIF(expr1,expr2);  
  2.  
  3. // Return NULL  
  4. SELECT NULLIF(5,5);  
  5.  
  6. // Return 10  
  7. SELECT NULLIF(10,4); 

5)存儲過程的,代碼如下:

  1. mysql>create procedure ifprod() 
  2.  
  3. ->begin 
  4.  
  5. ->set @x=0; 
  6.  
  7. ->ins:loop; 
  8.  
  9. ->set @x=@x+1; 
  10.  
  11. if  @x=100 then 
  12.  
  13. leave ins; 
  14.  
  15. end if 
  16.  
  17. insert into actor(firestname)values('m.survivalescaperooms.com'); 
  18.  
  19. end loop ins; 
  20.  
  21. end
  22.  
  23. ->$$ 
  24.  
  25. Query Ok, 0 rows affected (0.00 sec);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富锦市| 格尔木市| 遂宁市| 海原县| 海口市| 湾仔区| 上林县| 安龙县| 保亭| 三亚市| 车险| 乌拉特中旗| 琼海市| 苍山县| 莱阳市| 麦盖提县| 淄博市| 通许县| 凤冈县| 关岭| 县级市| 石阡县| 安化县| 隆回县| 胶州市| 寻甸| 博罗县| 儋州市| 开平市| 米泉市| 海盐县| 桐乡市| 昭通市| 平顺县| 成都市| 六枝特区| 灵山县| 仙桃市| 常德市| 财经| 德格县|