MySQL分支和循環(huán)結構方式
一、if函數(shù)
在mysql中if()函數(shù)的用法類似于java中的三目表達式,其用處也比較多,
具體語法如下:
IF(expr1,expr2,expr3),如果expr1的值為true,則返回expr2的值,如果expr1的值為false,則返回expr3的值。注意:if函數(shù)可以用在任何位置。
例如:
select * ,if(role_id=1,‘管理員’,‘普通用戶’) as role from user_p;當role_id為1時,返回管理員,role_id非1返回普通用戶。

二、case語句
1、情景一(case函數(shù))
類似于Java總的switch-case結構,代碼和運行截圖如下:
語法:
- case 表達式
- when 值1 then 結果1或語句1(如果是語句,需要加分號)
- when 值2 then 結果2或語句2(如果是語句,需要加分號)
- …
- else 結果n或語句n(如果是語句,需要加分號)
- end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)
select *, case role_id when 1 then "管理員" when 2 then "普通用戶" else "游客" end as role from user_p;

2、情景二(case搜索函數(shù))
類似于多重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 "狀態(tài)" from info;

三、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);

四、循環(huán)
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",i),i);
SET i=i+1;
END WHILE;
RETURN "success";
END $$
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
DELIMITER ;
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
select insertUser(5);


總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
mysql5.5 master-slave(Replication)配置方法
mysql5.5 master-slave(Replication)配置方法,需要的朋友可以參考下。2011-08-08
VMWare linux mysql 5.7.13安裝配置教程
這篇文章主要為大家詳細介紹了VMWare linux mysql 5.7.13安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
MYSQL加密和壓縮函數(shù)詳解以及實戰(zhàn)(附示例)
這篇文章主要給大家介紹了關于MYSQL加密和壓縮函數(shù)詳解以及實戰(zhàn)的相關資料,加密函數(shù)主要用來對數(shù)據(jù)進行加密和界面處理,以保證某些重要數(shù)據(jù)不被別人獲取,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-12-12

