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

MySQL-এ ডাইনামিকভাবে কলাম নির্বাচন করা (PREPARED STATEMENT)


PREPARED STATEMENT দিয়ে রানটাইমে কলাম নাম নির্ধারণ

MySQL-এ কলাম নাম ডাইনামিকভাবে (রানটাইমে) নির্বাচন করতে PREPARE এবং EXECUTE ব্যবহার করতে হয়। এটি ডাইনামিক SQL তৈরি করার পদ্ধতি।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (EmployeeName VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('John Doe');

ডাইনামিক কোয়েরি তৈরি ও এক্সিকিউট

mysql> SET @dynamicQuery = CONCAT("SELECT ", (SELECT "EmployeeName from DemoTable"));
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @dynamicQuery;
+---------------------------------------+
| @dynamicQuery                         |
+---------------------------------------+
| SELECT EmployeeName from DemoTable    |
+---------------------------------------+

mysql> PREPARE myStatement FROM @dynamicQuery;
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE myStatement;
+--------------+
| EmployeeName |
+--------------+
| John Doe     |
+--------------+

ধাপগুলো

  1. CONCAT() দিয়ে কোয়েরি স্ট্রিং তৈরি করুন।
  2. PREPARE stmt_name FROM @variable দিয়ে স্টেটমেন্ট প্রস্তুত করুন।
  3. EXECUTE stmt_name দিয়ে চালান।
  4. শেষে DEALLOCATE PREPARE stmt_name দিয়ে মুক্ত করুন।

সতর্কতা

  • SQL ইনজেকশন ঝুঁকি থাকে — ইউজার ইনপুট স্যানিটাইজ করুন।
  • শুধু SELECT, INSERT, UPDATE, DELETE ইত্যাদি DML স্টেটমেন্ট প্রিপেয়ার করা যায়।
  1. MySQL-এ কলামের দৈর্ঘ্য (LENGTH) অনুযায়ী সর্ট করা

  2. MySQL-এ ALTER TABLE CHANGE ব্যবহার করে কলাম নাম পরিবর্তন করা

  3. MySQL-এ LPAD() ফাংশন দিয়ে কলামে লিডিং জিরো যোগ করা

  4. MySQL-এ SUBSTRING_INDEX() ব্যবহার করে কলাম বিভক্ত করা (স্প্লিট)