Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में WHILE LOOP और IF STATEMENT कैसे लागू करें?


स्टोर्ड प्रोसीजर में WHILE लूप और IF का उपयोग

MySQL स्टोर्ड प्रोसीजर में WHILE लूप और IF स्टेटमेंट का उपयोग करके वर्तमान महीने के कार्यदिवसों (सोमवार-शुक्रवार) की गणना करने का उदाहरण।

स्टोर्ड प्रोसीजर बनाना

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 लूप: महीने के प्रत्येक दिन के लिए
    WHILE (@count_days < @total_numberofdays) DO
        -- IF स्टेटमेंट: यदि कार्यदिवस (0=सोमवार ... 4=शुक्रवार)
        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 //
mysql> DELIMITER ;

प्रोसीजर कॉल करना

CALL sp_getDaysDemo();

आउटपुट (उदाहरण: जनवरी 2019)

+----------------+--------------------+---------------------+----------------+------------+
| @current_month | @current_monthname | @total_numberofdays | @check_weekday | @check_day |
+----------------+--------------------+---------------------+----------------+------------+
| 1              | January            | 31                  | 2019-02-01     | 1          |
+----------------+--------------------+---------------------+----------------+------------+

कोड व्याख्या

लाइनउद्देश्य
MONTH(CURDATE())वर्तमान महीना नंबर (1-12)
MONTHNAME(CURDATE())महीने का नाम
DAY(LAST_DAY(CURDATE()))वर्तमान महीने में कुल दिन
DATE_FORMAT(NOW(), '%Y-%m-01')महीने का पहला दिन
WEEKDAY(date)सप्ताह का दिन (0=सोमवार, 6=रविवार)
WHILE ... DO ... END WHILEलूप जब तक शर्त सत्य
IF ... THEN ... END IFसशर्त निष्पादन

मुख्य बिंदु

  • WHILE लूप के लिए शर्त कोष्ठक में: WHILE (condition) DO।
  • लूप के अंदर काउंटर अपडेट करना न भूलें (अन्यथा अनंत लूप)।
  • LEAVE label_name से लूप से जल्दी बाहर निकल सकते हैं।
  • उपयोगकर्ता-परिभाषित वेरिएबल (@var) सेशन में बने रहते हैं।

नोट

MySQL 8.0+ में, रिकर्सिव CTE या विंडो फंक्शन का उपयोग करके इसे सेट-आधारित क्वेरी के रूप में लिखना अधिक कुशल हो सकता है।

  1. Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं? Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं?

    Java में PreparedStatement से SELECT क्वेरी निष्पादित करना SELECT क्वेरी के लिए executeQuery() मेथड का उपयोग किया जाता है। सिंटैक्स PreparedStatement pstmt = connection.prepareStatement(query); ResultSet rs = pstmt.executeQuery(); उदाहरण: डेटाबेस में टेबल बनाएं ); डेटा डालें: insert into JavaP

  1. - C# do-while लूप का उपयोग कैसे करें

    do...while लूप अपनी कंडीशन को लूप के अंत में चेक करता है। यह while लूप के समान है, सिवाय इसके कि do...while लूप कम से कम एक बार एक्जीक्यूट होने की गारंटी देता है। do while लूप बनाने के लिए - do { statement(s); } while(condition); कंडीशनल एक्सप्रेशन लूप के अंत में दिखाई देती है, इसलिए लूप में स्ट

  1. - Python while लूप कैसे काम करता है?

    Python में while लूप का कार्यकरण while स्टेटमेंट Python सहित कई भाषाओं में बहुत लोकप्रिय लूपिंग स्टेटमेंट है। इसका सामान्य उपयोग इस प्रकार है: while expr == True: stmt1 stmt2 ..... : सिंबल के बाद बढ़े हुए इंडेंट के साथ स्टेटमेंट्स का ब्लॉक तब तक बार-बार निष्पादित किया जाएगा जब तक expr