MySQL分支和循環(huán)結(jié)構(gòu)方式
一、if函數(shù)
在mysql中if()函數(shù)的用法類似于java中的三目表達(dá)式,其用處也比較多,
具體語法如下:
IF(expr1,expr2,expr3),如果expr1的值為true,則返回expr2的值,如果expr1的值為false,則返回expr3的值。注意:if函數(shù)可以用在任何位置。
例如:
select * ,if(role_id=1,‘管理員’,‘普通用戶’) as role from user_p;當(dāng)role_id為1時,返回管理員,role_id非1返回普通用戶。
二、case語句
1、情景一(case函數(shù))
類似于Java總的switch-case結(jié)構(gòu),代碼和運行截圖如下:
語法:
- case 表達(dá)式
- when 值1 then 結(jié)果1或語句1(如果是語句,需要加分號)
- when 值2 then 結(jié)果2或語句2(如果是語句,需要加分號)
- …
- else 結(jié)果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 結(jié)果1或語句1(如果是語句,需要加分號)
- when 條件2 then 結(jié)果2或語句2(如果是語句,需要加分號)
- …
- else 結(jié)果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);
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql實現(xiàn)合并同一ID對應(yīng)多條數(shù)據(jù)的方法
這篇文章主要介紹了mysql實現(xiàn)合并同一ID對應(yīng)多條數(shù)據(jù)的方法,涉及mysql GROUP_CONCAT函數(shù)的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06mysql如何按首字母進(jìn)行檢索數(shù)據(jù)
這篇文章介紹了如何根據(jù)學(xué)生的首字母檢索學(xué)生信息的需求,并提供了一種不增加表字段的實現(xiàn)方法,通過利用漢字的拼音排序特性,結(jié)合數(shù)據(jù)庫的排序和轉(zhuǎn)換函數(shù),實現(xiàn)了根據(jù)首字母模糊匹配檢索學(xué)生信息的功能2024-11-11MySQL學(xué)習(xí)必備條件查詢數(shù)據(jù)
這篇文章主要介紹了MySQL學(xué)習(xí)必備條件查詢數(shù)據(jù),首先通過利用where語句可以對數(shù)據(jù)進(jìn)行篩選展開主題相關(guān)內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你有所幫助2022-03-03詳解標(biāo)準(zhǔn)mysql(x64) Windows版安裝過程
這篇文章主要介紹了標(biāo)準(zhǔn)mysql(x64) Windows版安裝過程,需要的朋友可以參考下2017-08-08MySQL DISTINCT 的基本實現(xiàn)原理詳解
這篇文章主要介紹了MySQL DISTINCT 的基本實現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07