如何在 MySQL 中使用 if 語句實現 while 迴圈?
以下是一個使用 if 語句實現 MySQL while 迴圈的示例。我們將其用於儲存過程中
以下是要建立儲存過程的查詢
mysql> DELIMITER // mysql> create procedure sp_getDaysDemo() -> BEGIN -> SELECT MONTH(CURDATE()) INTO @current_month; -> SELECT MONTHNAME(CURDATE()) INTO @current_monthname; -> SELECT DAY(LAST_DAY(CURDATE())) INTO @total_numberofdays; -> SELECT CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE)INTO @check_weekday; -> SELECT DAY(@check_weekday) INTO @check_day; -> SET @count_days = 0; -> SET @workdays = 0; -> -> WHILE(@count_days < @total_numberofdays) DO -> IF (WEEKDAY(@check_weekday) < 5) THEN -> SET @workdays = @workdays+1; -> END IF; -> SET @count_days = @count_days+1; -> SELECT ADDDATE(@check_weekday, INTERVAL 1 DAY) INTO @check_weekday; -> END WHILE; -> -> select @current_month,@current_monthname,@total_numberofdays,@check_weekday,@check_day; -> END -> -> // Query OK, 0 rows affected (0.24 sec) mysql> delimiter ;
利用 CALL 命令呼叫儲存過程。語法如下
CALL yourStoredProcedureName();
現在,你可以使用以下查詢呼叫儲存過程
mysql> call sp_getDaysDemo();
以下為輸出結果
+----------------+--------------------+---------------------+----------------+------------+ | @current_month | @current_monthname | @total_numberofdays | @check_weekday | @check_day | +----------------+--------------------+---------------------+----------------+------------+ | 1 | January | 31 | 2019-02-01 | 1 | +----------------+--------------------+---------------------+----------------+------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.02 sec)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP