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

MySQL স্টোরড প্রসিডিউরে WHERE IN() ব্যবহার করা

MySQL স্টোরড প্রসিডিউরে ডাইনামিক WHERE IN() ক্লজ বাস্তবায়নের জন্য প্রিপেয়ার্ড স্টেটমেন্ট (Prepared Statement) ব্যবহার করা হয়। এটি কমা-সেপারেটেড মান গ্রহণ করে।

টেবিল এবং ডেটা

CREATE TABLE DemoTable (
    Id INT,
    Name VARCHAR(20)
);

INSERT INTO DemoTable VALUES(100,'Chris');
INSERT INTO DemoTable VALUES(101,'Bob');
INSERT INTO DemoTable VALUES(102,'David');

স্টোরড প্রসিডিউর

DELIMITER //
CREATE PROCEDURE whereInDemo(IN input VARCHAR(100))
BEGIN
    SET @Query = 'SELECT Name FROM DemoTable';
    SET @Query = CONCAT(@Query, ' WHERE Id IN (', input, ')');
    PREPARE stmt FROM @Query;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END //
DELIMITER ;

কল করুন

CALL whereInDemo('100,102');

ফলাফল

+-------+
| Name  |
+-------+
| Chris |
| David |
+-------+

গুরুত্বপূর্ণ নোট

  • CONCAT() — কুয়েরি স্ট্রিং তৈরি করে
  • PREPARE, EXECUTE, DEALLOCATE PREPARE — প্রিপেয়ার্ড স্টেটমেন্ট লাইফসাইকেল
  • সিকিউরিটি সতর্কতা: ইনপুট স্যানিটাইজ না করলে SQL ইনজেকশন হয়েছে। প্রোডাকশনে প্যারামিটারাইজড কুয়েরি বা ভ্যালিডেশন ব্যবহার করুন
  1. MySQL-এ স্টোরড প্রসিডিউরে DECLARE কীওয়ার্ড দিয়ে ভেরিয়েবল ডিক্লেয়ার করা

  2. MySQL স্টোরড প্রোসিডিউরে শর্ত সেট করা (IF...ELSE)

  3. MySQL স্টোরড প্রসিডিউরে শর্তসাপেক্ষ UPDATE (WHERE ক্লজ সহ)

  4. MySQL-এ AUTO_INCREMENT কলাম নিয়ে কাজ করা