mysql存儲(chǔ)過(guò)程之if語(yǔ)句用法實(shí)例詳解
本文實(shí)例講述了mysql存儲(chǔ)過(guò)程之if語(yǔ)句用法。分享給大家供大家參考,具體如下:
mysql中的 IF語(yǔ)句允許我們根據(jù)表達(dá)式的某個(gè)條件或值結(jié)果來(lái)執(zhí)行一組SQL語(yǔ)句,所以我們要在MySQL中形成一個(gè)表達(dá)式,可以結(jié)合文字,變量,運(yùn)算符,甚至函數(shù)來(lái)組合。表達(dá)式可以返回TRUE,FALSE或NULL,這三個(gè)值之一。來(lái)看下語(yǔ)法結(jié)構(gòu):
IF expression THEN statements; END IF;
如果上述表達(dá)式(expression)計(jì)算結(jié)果為T(mén)RUE,那么將執(zhí)行statements語(yǔ)句,否則控制流將傳遞到END IF之后的下一個(gè)語(yǔ)句。咱們來(lái)看下IF語(yǔ)句的執(zhí)行過(guò)程:
咱們?cè)賮?lái)看下IF ELSE語(yǔ)句的語(yǔ)法結(jié)構(gòu):
IF expression THEN statements; ELSE else-statements; END IF;
完事就來(lái)看IF ELSE語(yǔ)句的執(zhí)行過(guò)程:
我們?nèi)绻诙鄠€(gè)表達(dá)式有條件地執(zhí)行語(yǔ)句,則使用IF ELSEIF ELSE語(yǔ)句,它的語(yǔ)法結(jié)構(gòu)如下:
IF expression THEN statements; ELSEIF elseif-expression THEN elseif-statements; ... ELSE else-statements; END IF;
如果表達(dá)式(expression)求值為T(mén)RUE,則IF分支中的語(yǔ)句(statements)將執(zhí)行;如果表達(dá)式求值為FALSE,并且elseif_expression的計(jì)算結(jié)果為T(mén)RUE,mysql將執(zhí)行elseif-expression,否則執(zhí)行ELSE分支中的else-statements語(yǔ)句。咱們來(lái)看下具體的執(zhí)行過(guò)程:
咱們接下來(lái)使用IF ESLEIF ELSE語(yǔ)句和GetCustomerLevel()存儲(chǔ)過(guò)程接受客戶(hù)編號(hào)和客戶(hù)級(jí)別的兩個(gè)參數(shù)。首先這個(gè)GetCustomerLevel()存儲(chǔ)過(guò)程得先從customers表中獲得信用額度,完事呢,根據(jù)信用額度,它決定客戶(hù)級(jí)別:PLATINUM , GOLD 和 SILVER 。參數(shù)p_customerlevel存儲(chǔ)客戶(hù)的級(jí)別,并由調(diào)用程序使用,咱們來(lái)看下具體的sql:
DELIMITER $$ CREATE PROCEDURE GetCustomerLevel( in p_customerNumber int(11), out p_customerLevel varchar(10)) BEGIN DECLARE creditlim double; SELECT creditlimit INTO creditlim FROM customers WHERE customerNumber = p_customerNumber; IF creditlim > 50000 THEN SET p_customerLevel = 'PLATINUM'; ELSEIF (creditlim <= 50000 AND creditlim >= 10000) THEN SET p_customerLevel = 'GOLD'; ELSEIF creditlim < 10000 THEN SET p_customerLevel = 'SILVER'; END IF; END$$
確定客戶(hù)級(jí)別的邏輯的流程圖如下:
好啦,本次分享就到這里了。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
老生常談mysql event事件調(diào)度器(必看篇)
下面小編就為大家?guī)?lái)一篇老生常談mysql event事件調(diào)度器(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03計(jì)算機(jī)二級(jí)考試MySQL知識(shí)點(diǎn) mysql alter命令
這篇文章主要為大家詳細(xì)介紹了計(jì)算機(jī)二級(jí)考試MySQL知識(shí)點(diǎn),詳細(xì)介紹了mysql中alter命令的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08淺談MySQL的B樹(shù)索引與索引優(yōu)化小結(jié)
這篇文章主要介紹了淺談MySQL的B樹(shù)索引與索引優(yōu)化小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03MySQL聯(lián)表查詢(xún)的簡(jiǎn)單示例
這篇文章主要給大家介紹了關(guān)于MySQL聯(lián)表查詢(xún)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05MySQL安裝提示"請(qǐng)鍵入NET HELPMSG 3534以獲得更多的幫助"的解決辦法
這篇文章主要介紹了MySQL安裝提示"請(qǐng)鍵入NET HELPMSG 3534以獲得更多的幫助"的解決辦法2017-03-03Mysql行與列的多種轉(zhuǎn)換(行轉(zhuǎn)列,列轉(zhuǎn)行,多列轉(zhuǎn)一行,一行轉(zhuǎn)多列)
在MySQL中,行轉(zhuǎn)列和列轉(zhuǎn)行都是非常有用的操作,本文就來(lái)介紹一下Mysql行與列的多種轉(zhuǎn)換,主要包括行轉(zhuǎn)列,列轉(zhuǎn)行,多列轉(zhuǎn)一行,一行轉(zhuǎn)多列,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08MySQL 啟動(dòng)報(bào)錯(cuò):File ./mysql-bin.index not found (Errcode: 13)
這篇文章主要介紹了MySQL 啟動(dòng)報(bào)錯(cuò):File ./mysql-bin.index not found (Errcode: 13)的解決方法,需要的朋友可以參考下2014-07-07淺析MySQL數(shù)據(jù)的導(dǎo)出與導(dǎo)入知識(shí)點(diǎn)
在本文里我們給大家分享了關(guān)于MySQL數(shù)據(jù)的導(dǎo)出與導(dǎo)入的相關(guān)實(shí)例和知識(shí)點(diǎn)內(nèi)容,需要的朋友們跟著學(xué)習(xí)下。2019-03-03