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

MySQL স্টোরড প্রোসিডিউরে IN() ক্লজ ব্যবহার করে নির্দিষ্ট রেকর্ড বের করা

স্টোরড প্রোসিডিউরে ইনপুট প্যারামিটার নিয়ে IN() ক্লজ ব্যবহার করে নির্দিষ্ট রেকর্ড বের করা যায়।

টেবিল ও ডেটা:

mysql> CREATE TABLE DemoTable2004 (UserId VARCHAR(20), UserName VARCHAR(20));
mysql> INSERT INTO DemoTable2004 VALUES
    ('John_123','John'), ('23456_Carol','Carol'), ('111_Bob','Bob');

স্টোরড প্রোসিডিউর তৈরি:

mysql> DELIMITER //
mysql> CREATE PROCEDURE test_of_in(IN uId VARCHAR(20))
    BEGIN
        SELECT * FROM DemoTable2004 WHERE UserId IN(uId);
    END //
mysql> DELIMITER ;

প্রোসিডিউর কল:

mysql> CALL test_of_in('23456_Carol');

আউটপুট:

+-------------+----------+
| UserId      | UserName |
+-------------+----------+
| 23456_Carol | Carol    |
+-------------+----------+

ব্যাখ্যা

  • IN(uId) — একক মান হলে = সমান কাজ করে।
  • একাধিক মান পাস করতে হলে: IN('val1','val2',...) বা ডাইনামিক SQL ব্যবহার করুন।
  • DELIMITER // — প্রোসিডিউর বডিতে সেমিকোলন ব্যবহার করার জন্য।

ডাইনামিক IN লিস্ট উদাহরণ

CREATE PROCEDURE test_in_list(IN ids TEXT)
BEGIN
    SET @q = CONCAT('SELECT * FROM DemoTable2004 WHERE UserId IN (', ids, ')');
    PREPARE st FROM @q;
    EXECUTE st;
    DEALLOCATE PREPARE st;
END;

// কল: CALL test_in_list("'John_123','111_Bob'");

সতর্কতা: SQL ইনজেকশন প্রতিরোধে ইনপুট স্যানিটাইজ করুন।

  1. MySQL স্টোরড প্রসিডিউরে DELIMITER সঠিকভাবে ব্যবহার করা

  2. MySQL 저장 프로시저에서 현재 데이터베이스 이름 가져오기

  3. MySQL স্টোরড প্রোসিডিউরে ডাইনামিক SQL এবং LIKE ক্লজ ব্যবহার করে নতুন টেবিল তৈরি করা

  4. MySQL-এ সঠিকভাবে DELIMITER ব্যবহার করে স্টোরড প্রসিডিউরে মান ইনসার্ট করা