mysql流程控制语句总结

萧红SEO SEO爱好者,分享SEO经验~

以前我们大多数据在用到条件判断时都会有用到if else下面我们要介绍是mysql if else case ifnull等这些命令语句的用法介绍.

mysql中有如下的几个的控制流程的语句:

1)case,代码如下:

  1. //Belowwillreturnzero
  2. SELECTCASE0WHEN0THEN'zero'WHEN1THEN'one'ELSE'noone'END;
  3. //Belowwillreturntrue
  4. SELECTCASEWHEN5>2THEN'true'ELSE'false'END;

实例,代码如下:

  1. CASEcase_value
  2. WHENwhen_valueTHENstatement_list
  3. [WHENwhen_valueTHENstatement_list]...
  4. [ELSEstatement_list]
  5. ENDCASE
  6. --或者
  7. CASE
  8. WHENsearch_conditionTHENstatement_list
  9. [WHENsearch_conditionTHENstatement_list]...
  10. [ELSEstatement_list]
  11. ENDCASE

2)if 语句,代码如下:

  1. SELECTIF(expr1,expr2,expr3);
  2. //returnyes
  3. SELECTIF(1<5,'yes','no');

有三个参数,如果第1个表达式返回true,则返回表达式2,否则返回表达式3.

实例,代码如下:

  1. createproceduredbname.proc_getGrade
  2. (stu_novarchar(20),cour_novarchar(10))
  3. BEGIN
  4. declarestu_gradefloat;
  5. selectgradeintostu_gradefromgradewherestudent_no=stu_noandcourse_no=cour_no;
  6. ifstu_grade>=90then
  7. selectstu_grade,'A';
  8. elseifstu_grade<90andstu_grade>=80then
  9. selectstu_grade,'B';
  10. elseifstu_grade<80andstu_grade>=70then
  11. selectstu_grade,'C';
  12. elseifstu_grade70andstu_grade>=60then
  13. --phpfensi.com
  14. selectstu_grade,'D';
  15. else
  16. selectstu_grade,'E';
  17. endif;
  18. END

3)ifnull

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2,IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境,代码如下:

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

IF(expr1,expr2,expr3)

如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3,IF()返回一个数字或字符串值,取决于它被使用的上下文,代码如下:

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

expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做,代码如下:

  1. mysql>selectIF(0.1,1,0);
  2. ->0
  3. mysql>selectIF(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. SELECTNULLIF(expr1,expr2);
  2. //ReturnNULL
  3. SELECTNULLIF(5,5);
  4. //Return10
  5. SELECTNULLIF(10,4);

5)存储过程的,代码如下:

  1. mysql>createprocedureifprod()
  2. ->begin
  3. ->set@x=0;
  4. ->ins:loop;
  5. ->set@x=@x+1;
  6. if@x=100then
  7. leaveins;
  8. endif
  9. insertintoactor(firestname)values('www.phpfensi.com');
  10. endloopins;
  11. end;
  12. ->$$
  13. QueryOk,0rowsaffected(0.00sec);

相关广告
  • mysql流程控制语句总结 mysql流程控制语句总结 mysql流程控制语句总结
相关阅读

mysql流程控制语句总结

2019/10/10 17:33:34 | 谷歌SEO算法 | 谷歌CEO