日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql if语句后面执行两个语句_MySQL的if,case语句使用总结

發布時間:2025/3/11 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql if语句后面执行两个语句_MySQL的if,case语句使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql的if既可以作為表達式用,也可在存儲過程中作為流程控制語句使用,如下是做為表達式使用:

IF表達式

IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),則 IF()的返回值為expr2; 否則返回值則為 expr3。IF() 的返回值為數字值或字符串值,具體情況視其所在語境而定。

select*,if(sva=1,"男","女")asssva fromtaname wheresva !=""

作為表達式的if也可以用CASE when來實現:

selectCASE sva WHEN 1THEN '男'ELSE '女'ENDasssva fromtaname wheresva !=''

在第一個方案的返回結果中, value=compare-value。而第二個方案的返回結果是第一種情況的真實結果。如果沒有匹配的結果值,則返回結果為ELSE后的結果,如果沒有ELSE 部分,則返回值為 NULL。

例如:

SELECT CASE 1WHEN 1THEN 'one'WHEN 2THEN 'two'ELSE 'more'ENDastestCol

將輸出one

IFNULL(expr1,expr2)

假如expr1 不為 NULL,則 IFNULL() 的返回值為 expr1; 否則其返回值為 expr2。IFNULL()的返回值是數字或是字符串,具體情況取決于其所使用的語境。

mysql>SELECT IFNULL(1,0);->1mysql>SELECT IFNULL(NULL,10);->10mysql>SELECT IFNULL(1/0,10);->10mysql>SELECT IFNULL(1/0,'yes');->'yes'

IFNULL(expr1,expr2)?的默認結果值為兩個表達式中更加“通用”的一個,順序為STRING、 REAL或 INTEGER。

IF ELSE 做為流程控制語句使用

if實現條件判斷,滿足不同條件執行不同的操作,這個我們只要學編程的都知道if的作用了,下面我們來看看mysql 存儲過程中的if是如何使用的吧。

IF search_condition THEN

statement_list

[ELSEIF search_condition THEN]statement_list ...[ELSE

statement_list]ENDIF

與PHP中的IF語句類似,當IF中條件search_condition成立時,執行THEN后的statement_list語句,否則判斷ELSEIF中的條件,成立則執行其后的statement_list語句,否則繼續判斷其他分支。當所有分支的條件均不成立時,執行ELSE分支。search_condition是一個條件表達式,可以由“=、、>=、!=”等條件運算符組成,并且可以使用AND、OR、NOT對多個表達式進行組合。

例如,建立一個存儲過程,該存儲過程通過學生學號(student_no)和課程編號(course_no)查詢其成績(grade),返回成績和成績的等級,成績大于90分的為A級,小于90分大于等于80分的為B級,小于80分大于等于70分的為C級,依次到E級。那么,創建存儲過程的代碼如下:

create procedure dbname.proc_getGrade

(stu_no varchar(20),cour_no varchar(10))BEGINdeclare stu_grade float;selectgrade intostu_grade fromgrade wherestudent_no=stu_no andcourse_no=cour_no;ifstu_grade>=90thenselectstu_grade,'A';elseif stu_grade<90andstu_grade>=80thenselectstu_grade,'B';elseif stu_grade<80andstu_grade>=70thenselectstu_grade,'C';elseif stu_grade70 andstu_grade>=60thenselectstu_grade,'D';elseselectstu_grade,'E';endif;END

注意:IF作為一條語句,在END IF后需要加上分號“;”以表示語句結束,其他語句如CASE、LOOP等也是相同的。

總結

以上是生活随笔為你收集整理的mysql if语句后面执行两个语句_MySQL的if,case语句使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。