কম্পিউটার টিউটোরিয়াল

MySQL-এ WHILE LOOP এবং IF STATEMENT একসাথে ব্যবহার করা

MySQL-এ WHILE LOOP এবং IF STATEMENT একসাথে ব্যবহার করার উদাহরণ নিচে দেওয়া হলো। আমরা এটিকে একটি স্ট্রোড প্রসিডিউরে ব্যবহার করছি।

আমাদের স্ট্রোড প্রসিডিউর তৈরির কোয়েরি নিচে দেওয়া হলো:

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)

ব্যাখ্যা: এই স্ট্রোড প্রসিডিউরটি বর্তমান মাসের মোট দিন সংখ্যা (@total_numberofdays), মাসের নাম, এবং মাসের প্রথম দিন থেকে শুরু করে প্রতিটি দিন চেক করে বুধবার থেকে শুক্রবার (WEEKDAY < 5 মানে সোমবার-শুক্রবার) পর্যন্ত কতগুলো কর্মদিবস (@workdays) আছে তা গণনা করে। WHILE লুপ দিন সংখ্যা পর্যন্ত চলে, IF দিয়ে ওয়িকডে চেক করে, এবং ADDDATE দিয়ে তারিখ বাড়ায়। MySQL-এ প্রসিডিউরাল লজিক (লুপ, কন্ডিশন) লিখতে BEGIN ... END ব্লক এবং DELIMITER পরিবর্তন করা প্রয়োজন।

  1. Java-এ MySQL PreparedStatement দিয়ে SELECT কোয়েরি চালানো

  2. C#-এ while লুপে continue স্টেটমেন্ট ব্যবহার

  3. C#-এ do-while লুপ ব্যবহার করা

  4. Python while লুপ কীভাবে কাজ করে?