← Back to MySQL Course | Chapter 15: Stored Procedures & Functions | Lesson 4 of 5

IF और LOOP in Procedures

किसी procedure के अंदर IF और LOOP एक chore list में choices और repeats जैसे हैं: अगर यह true है तो वह करो, और जब तक खत्म न हो जाए कुछ करते रहो।
Syntax
sql
IF condition THEN
  -- statements
ELSEIF condition THEN
  -- statements
ELSE
  -- statements
END IF;

loop_label: LOOP
  -- statements
  IF exit_condition THEN LEAVE loop_label; END IF;
END LOOP;

Procedures में IF-THEN इस्तेमाल करना

किसी stored procedure के अंदर IF-THEN किसी भी programming language में conditional logic जैसा काम करता है, statements के एक block को सिर्फ तभी चलाते हुए जब एक specified condition true evaluate हो।

उदाहरण: Using IF-THEN in Procedures

sql
DELIMITER //
CREATE PROCEDURE CheckStock(IN qty INT)
BEGIN
  IF qty < 10 THEN
    SELECT 'Low stock' AS message;
  END IF;
END //
DELIMITER ;
CALL CheckStock(5);

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

कई Choices के लिए ELSEIF Add करना

ELSEIF एक IF block पर additional conditions chain करता है, procedure को क्रम में कई possibilities check करने देते हुए और यह जो भी पहले match करे उसके आधार पर अलग logic चलाने देते हुए।

उदाहरण: Adding ELSEIF for Multiple Choices

sql
DELIMITER //
CREATE PROCEDURE GradeScore(IN score INT)
BEGIN
  IF score >= 90 THEN
    SELECT 'A' AS grade;
  ELSEIF score >= 70 THEN
    SELECT 'B' AS grade;
  ELSE
    SELECT 'F' AS grade;
  END IF;
END //
DELIMITER ;
CALL GradeScore(75);

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

Simple LOOP Statement

एक plain LOOP अपने contents indefinitely दोहराता है जब तक आप explicitly इसे एक LEAVE statement से बाहर न निकालें — उस statement को भूल जाना किसी procedure के अंदर गलती से एक infinite loop लिखने का classic तरीका है।

उदाहरण: The Simple LOOP Statement

sql
DELIMITER //
CREATE PROCEDURE CountToFive()
BEGIN
  DECLARE i INT DEFAULT 1;
  my_loop: LOOP
    IF i > 5 THEN
      LEAVE my_loop;
    END IF;
    SET i = i + 1;
  END LOOP;
  SELECT i AS final_value;
END //
DELIMITER ;
CALL CountToFive();

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

WHILE Loop

WHILE loop body में हर pass से पहले अपनी condition check करता है, इसलिए अगर condition शुरुआत में false हो, loop body बिल्कुल नहीं चलता, कुछ loop types के उलट जो हमेशा कम से कम एक बार execute होते हैं।

उदाहरण: The WHILE Loop

sql
DELIMITER //
CREATE PROCEDURE CountToFiveWhile()
BEGIN
  DECLARE i INT DEFAULT 1;
  WHILE i <= 5 DO
    SET i = i + 1;
  END WHILE;
  SELECT i AS final_value;
END //
DELIMITER ;
CALL CountToFiveWhile();

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

REPEAT Loop

REPEAT WHILE का उल्टा है: यह पहले अपनी body चलाता है और सिर्फ बाद में condition check करता है, यह guarantee करते हुए कि loop exit होने से पहले अंदर का code कम से कम एक बार execute हो।

उदाहरण: The REPEAT Loop

sql
DELIMITER //
CREATE PROCEDURE CountToFiveRepeat()
BEGIN
  DECLARE i INT DEFAULT 1;
  REPEAT
    SET i = i + 1;
  UNTIL i > 5 END REPEAT;
  SELECT i AS final_value;
END //
DELIMITER ;
CALL CountToFiveRepeat();

⚠️ This is MySQL-specific syntax. It cannot run in the browser editor. Practice this on your local MySQL installation.

Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. THEN या closing END IF; भूल जाना, जो एक syntax error है।
  2. बिना LEAVE condition के एक LOOP लिखना, जो हमेशा के लिए दोहराता है।
  3. एक WHILE loop के अंदर loop variable न बदलना, ताकि condition कभी false न हो।
🔒

Chapter Quiz — Complete all 5 topics to unlock

0/5 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.