开发者

MySQL分支和循环结构方式

目录
  • 一、if函数
  • 二、case语句
    • 1、情景一(case函数)
    • 2、情景二(case搜索函数)
  • 三、if elseif语句
    • 四、循环
      • 总结

        一、if函数

        在mysql中if()函数的用法类似于Java中的三目表达式,其用处也比较多,

        具体语法如下:

        IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。注意:if函数可以用在任何位置。

        例如:

        select * ,if(role_id=1,‘管理员’,‘普通用户’) as role from user_p;当role_id为1时,返回管理员,role_id非1返回普通用户。

        MySQL分支和循环结构方式

        二、case语句

        1、情景一(case函数)

        类似于Java总的switch-case结构,代码和运行截图如下:

        语法:

        • case 表达式
        • when 值1 then 结果1或语句1(如果是语句,需要加分号)
        • when 值2 then 结果2或语句2(如果是语句,需要加分号)
        • else 结果n或语javascript句n(如果是语句,需要加分号)
        • end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)
        select *,
        	case role_id 
        		when 1 then "管理员" 
        		when 2 then "普通用户" 
        		else "游客" end
        	as role
        from user_p;
        

        MySQL分支和循环结构方式

        2、情景二(case搜索函数)

        类似于多重if,可以用在任何位置。代码和运行截图如下:

        语法:

        • case
        • when 条件1 then 结果1或语句1(如果是语句,需要加分号)
        • when 条件2 then 结果2或语句2(如果是语句,需要加分号)
        • else 结果n或语句n(如果是语句,需要加分号)
        • end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)
        select *,case
        	when age <19 then "少年"
        	when age <30 then "青年"
        	when age >30 and age <50 then "中年"
        	else "老年"
        	end "状态"
        from info;
        

        MySQL分支和循环结构方式

        三、if elseif语句

        注意:只能用在begin end中

        • 语法:
        • if 情况1 then 语句1;
        • elseif 情况2 then 语句2;
        • else 语句n;
        • end if;
        #定义分号
        DELIMITER $$
        # # # # # # # # # # # # # # # # 编程客栈# # # # # # # # # # # # # #
        CREATE FUNCTION age_status(age int) RETURNS varchar(20)
        BEGIN
          
            DECLARE status varchar(20)  DEFAULT "老年";
         
            IF age < 19  THEN SET status ="少年";
            ELSEIF age <30 THEN SET status ="青年";
            ELSEIF 30<age<50 THEN SET status ="中年";
            ELSE SET status ="老年";
            END IF;
            RETURN status;
        END $$
        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
        #重新定义分号
        DELIMITER ;
        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
         select age_status(45);
        

        MySQL分支和循环结构方式

        四、循环

        DELIMITER $$
        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
        CREATE FUNCTION insertUser(num INT) RETURNS varchar(15)
        BEGIN 
        
            DECLARE i INT DEFAULT(1);
           
            while i<= num DO
                INSERT INTO info(name,sex,classname,age) 
        		VALUES (CONCAT("name",i),CONCAT("sex",i),CONCAT("classname"android,i),i);
                SET i=i+1;
               python END WHILE;
        	RETURN "succjsess";
        END $$
        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
        DELIMITER ;
        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
        select insertUser(5);
        

        MySQL分支和循环结构方式

        MySQL分支和循环结构方式

        总结

        以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

        0

        上一篇:

        下一篇:

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        最新数据库

        数据库排行榜