今天小編給大家分享一下MySQL存儲(chǔ)過程中的循環(huán)語句怎么寫的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括額敏網(wǎng)站建設(shè)、額敏網(wǎng)站制作、額敏網(wǎng)頁制作以及額敏網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,額敏網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到額敏省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
mysql存儲(chǔ)過程中的循環(huán)語句有三種:1、WHILE循環(huán)語句,語法“WHILE 條件表達(dá)式 DO 循環(huán)語句 END WHILE”;2、REPEAT循環(huán)語句,語法“REPEAT 循環(huán)語句 UNTIL 條件表達(dá)式 END REPEAT”;3、LOOP循環(huán)語句,語法“[begin_label:] LOOP 條件和循環(huán)語句列表 END LOOP [end_label]”。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
MySQL提供了循環(huán)語句,允許您根據(jù)條件重復(fù)執(zhí)行一段SQL代碼。有三種循環(huán)語句在MySQL: WHILE,REPEAT 和LOOP。
WHILE循環(huán)
WHILE語句的語法如下:
WHILE expression DO statements END WHILE
WHILE 循環(huán)檢查expression
在每次迭代的開始。如果expression
評(píng)估為TRUE
,MySQL將 在評(píng)估statements
之間執(zhí)行 WHILE
,END WHILE
直到expression
評(píng)估為止FALSE
。WHILE 循環(huán)稱為預(yù)測試循環(huán),因?yàn)樗?code>statements 執(zhí)行之前檢查表達(dá)式。
以下流程圖說明了WHILE循環(huán)語句:
以下是WHILE 在存儲(chǔ)過程中使用循環(huán)語句的示例:
DELIMITER $$ DROP PROCEDURE IF EXISTS test_mysql_while_loop$$ CREATE PROCEDURE test_mysql_while_loop ( ) BEGIN DECLARE x INT; DECLARE str VARCHAR ( 255 ); SET x = 1; SET str = ''; WHILE x <= 5 DO SET str = CONCAT( str, x, ',' ); SET x = x + 1; END WHILE; SELECT str; END $$ DELIMITER ;
在test_mysql_while_loop上面的存儲(chǔ)過程中:
首先,我們str 重復(fù)構(gòu)建字符串,直到x 變量的值 大于5。
然后,我們使用SELECT語句顯示最終字符串。
請(qǐng)注意,如果我們不初始化 x變量,則其默認(rèn)值為NULL。因此,WHILE循環(huán)語句中的條件始終是TRUE 并且您將具有無限循環(huán),這不是期望的。
我們來測試一下test_mysql_while_loop存儲(chǔ)過程:
CALL test_mysql_while_loop();
輸出結(jié)果:
REPEAT循環(huán)
REPEAT 循環(huán)語句的語法如下:
REPEAT statements UNTIL expression END REPEAT
首先,MySQL執(zhí)行statements
,然后評(píng)估expression
。如果expression
評(píng)估為FALSE
,則MySQL statements
重復(fù)執(zhí)行直到expression
評(píng)估為止TRUE。
因?yàn)镽EPEAT 循環(huán)語句expression
在執(zhí)行后檢查statements
,所以REPEAT循環(huán)語句也稱為測試后循環(huán)。
以下流程圖說明了REPEAT循環(huán)語句:
我們可以test_mysql_while_loop使用WHILE loop語句重寫上面使用REPEAT loop語句的存儲(chǔ)過程:
DELIMITER $$ DROP PROCEDURE IF EXISTS mysql_test_repeat_loop $$ CREATE PROCEDURE mysql_test_repeat_loop ( ) BEGIN DECLARE x INT; DECLARE str VARCHAR ( 255 ); SET x = 1; SET str = ''; REPEAT SET str = CONCAT( str, x, ',' ); SET x = x + 1; UNTIL x > 5 END REPEAT; SELECT str; END $$ DELIMITER ;
注意UNTIL 表達(dá)式中沒有分號(hào)(;)。
CALL mysql_test_repeat_loop();
輸出結(jié)果:
LOOP,LEAVE和ITERATE語句
有兩個(gè)語句允許您控制循環(huán):
LEAVE語句允許您立即退出循環(huán)而無需等待檢查條件。LEAVE語句的作用類似于PHP,C / C ++和Java等其他語言中的 break 語句。
ITERATE語句允許您跳過其下的整個(gè)代碼并開始新的迭代。ITERATE語句類似于PHP,C / C ++和Java中的continue語句。
MySQL還為您提供了LOOP一個(gè)重復(fù)執(zhí)行代碼塊的語句,并具有使用循環(huán)標(biāo)簽的額外靈活性。
以下是使用LOOP 循環(huán)語句的示例:
DELIMITER $$ DROP PROCEDURE IF EXISTS test_mysql_loop $$ CREATE PROCEDURE test_mysql_loop() BEGIN DECLARE x INT; DECLARE str VARCHAR ( 255 ); SET x = 1; SET str = ''; loop_label :LOOP IF x > 10 THEN LEAVE loop_label; END IF; SET x = x + 1; IF ( x MOD 2 ) THEN ITERATE loop_label; ELSE SET str = CONCAT( str, x, ',' ); END IF; END LOOP; SELECT str; END $$ DELIMITER ;
測試一下:
call test_mysql_loop();
在這個(gè)例子中,
存儲(chǔ)過程僅構(gòu)造具有偶數(shù)的字符串,例如,2,4和6。
我們loop_label 在LOOP聲明之前放置了一個(gè)循環(huán)標(biāo)簽。
如果值 x 大于10,則由于LEAVE語句而終止循環(huán)。
如果the的值x 是奇數(shù),則ITERATE 語句忽略其下的所有內(nèi)容并開始新的迭代。
如果the的值x 是偶數(shù),則ELSE語句中的塊將構(gòu)建具有偶數(shù)的字符串。
以上就是“mysql存儲(chǔ)過程中的循環(huán)語句怎么寫”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享文章:mysql存儲(chǔ)過程中的循環(huán)語句怎么寫
URL鏈接:http://jinyejixie.com/article12/jopddc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站排名、標(biāo)簽優(yōu)化、外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)