加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql流程控制语句概括

发布时间:2022-06-15 14:18:55 所属栏目:MySql教程 来源:互联网
导读:以前我们大多数据在用到条件判断时都会有用到if else下面我们要介绍是mysql if else case ifnull等这些命令语句的用法介绍. mysql中有如下的几个的控制流程的语句: 1)case,代码如下: // Below will return zero SELECT CASE 0 WHEN 0 THEN zero WHEN 1 THEN
  以前我们大多数据在用到条件判断时都会有用到if else下面我们要介绍是mysql if else case ifnull等这些命令语句的用法介绍.
 
  mysql中有如下的几个的控制流程的语句:
 
  1)case,代码如下:
 
  // Below will return zero  
  SELECT CASE 0 WHEN 0 THEN 'zero' WHEN 1 THEN 'one' ELSE 'no one' END;  
   
  // Below will return true  
  SELECT CASE WHEN 5>2 THEN 'true' ELSE 'false' END;   
  实例,代码如下:
 
  CASE case_value
   
   --或者
   
  CASE  
   
  WHEN search_condition THEN statement_list
   
  [WHEN search_condition THEN statement_list] ...
   
  [ELSE statement_list]
   
  END CASE  
  2)if 语句,代码如下:
 
  SELECT IF(expr1,expr2,expr3);
   
  // return yes  
  SELECT IF(1<5,'yes','no');
  有三个参数,如果第1个表达式返回true,则返回表达式2,否则返回表达式3.
 
  实例,代码如下:
 
  create procedure dbname.proc_getGrade
   
  (stu_no varchar(20),cour_no varchar(10))
   
   select stu_grade,'C';
   
  elseif stu_grade70 and stu_grade>=60 then  
  --phpfensi.com
  select stu_grade,'D';
   
  else  
   
  select stu_grade,'E';
   
  end if;
   
  END  
  3)ifnull
 
  如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2,IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境,代码如下:
 
  mysql> select IFNULL(1,0);       
                       -> 1       
  mysql> select IFNULL(0,10);       
                       -> 0       
  mysql> select IFNULL(1/0,10);       
                       -> 10       
  mysql> select IFNULL(1/0,yes);       
                       -> yes
  IF(expr1,expr2,expr3)
 
  如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3,IF()返回一个数字或字符串值,取决于它被使用的上下文,代码如下:
 
  
                       -> 1
  在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值,导致测试IF(0),这可能不是你期望的,在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数.
 
  4)nullif,代码如下:
 
  SELECT NULLIF(expr1,expr2);如果表达式1=表达式2,则返回null,否则返回第1个表达式,代码如下:
 
  SELECT NULLIF(expr1,expr2);  
   
  // Return NULL  
  SELECT NULLIF(5,5);  
   
  // Return 10  
  SELECT NULLIF(10,4);
  5)存储过程的,代码如下:
 
  mysql>create procedure ifprod()
   
  ->begin
   
  ->set @x=0;
   
  ->ins:loop;
   
  ->set @x=@x+1;
   
  if  @x=100 then
   
  leave ins;
   
  end if
   
  insert into actor(firestname)values('www.phpfensi.com');
   
  end loop ins;
   
  end;
   
  ->$$
   
  Query Ok, 0 rows affected (0.00 sec);

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读