ต่อไปนี้คือตัวอย่างการใช้ MySQL WHILE LOOP กับคำสั่ง IF เราใช้ในขั้นตอนการจัดเก็บ
ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างขั้นตอนการจัดเก็บของเรา:
mysql> DELIMITER //mysql> สร้างโพรซีเดอร์ sp_getDaysDemo() -> BEGIN -> เลือกเดือน (CURDATE()) เป็น @current_month; -> เลือก MONTHNAME(CURDATE()) เป็น @current_monthname; -> เลือกวัน(LAST_DAY(CURDATE())) เป็น @total_numberofdays; -> เลือก CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') เป็น DATE)INTO @check_weekday; -> เลือกวัน(@check_weekday) เป็น @check_day; -> SET @count_days =0; -> SET @workdays =0; -> -> ในขณะที่(@count_days <@total_numberofdays) ทำ -> IF (WEEKDAY(@check_weekday) <5) แล้ว -> SET @workdays =@workdays+1; -> สิ้นสุดถ้า; -> SET @count_days =@count_days+1; -> SELECT ADDDATE(@check_weekday, INTERVAL 1 DAY) เป็น @check_weekday; -> สิ้นสุดในขณะที่; -> -> เลือก @current_month,@current_monthname,@total_numberofdays,@check_weekday,@check_day; -> END -> -> //แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.24 วินาที) mysql> ตัวคั่น;
เรียกกระบวนงานที่เก็บไว้โดยใช้คำสั่ง CALL ไวยากรณ์มีดังนี้:
CALL yourStoredProcedureName();
ตอนนี้คุณสามารถเรียกกระบวนงานที่เก็บไว้โดยใช้แบบสอบถามต่อไปนี้:
mysql> โทร sp_getDaysDemo();
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----------+--------------------------+--------- --------------+----------------+-----------+| @current_month | @current_monthname | @total_numberofdays | @check_weekday | @check_day |+----------+--------------------------+--------- --------------+----------------+-----------+| 1 | มกราคม | 31 | 2019-02-01 | 1 |+----------+--------------------------+--------- --------------------------------------------------------------- +1 แถวในชุด (0.00 วินาที )แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.02 วินาที)