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

MySQL-এ FIND_IN_SET() ব্যবহার করে নির্দিষ্ট সারি নির্বাচন করা

নির্দিষ্ট সারি নির্বাচন করতে MySQL-এ FIND_IN_SET() ফাংশন ব্যবহার করা যায়। প্রথমে একটি টেবিল তৈরি করি:

mysql> CREATE TABLE DemoTable (
    ListOfValues VARCHAR(200)
);

রেকর্ড যোগ করি (কমা-বिभক্ত মান হিসেবে):

mysql> INSERT INTO DemoTable VALUES('112,114,567,Java,345');
mysql> INSERT INTO DemoTable VALUES('222,214,256');
mysql> INSERT INTO DemoTable VALUES('2,567,98,C');

সকল রেকর্ড দেখতে:

mysql> SELECT * FROM DemoTable;

আউটপুট:

+----------------------+
| ListOfValues         |
+----------------------+
| 112,114,567,Java,345 |
| 222,214,256          |
| 2,567,98,C           |
+----------------------+

নির্দিষ্ট মান (যেমন '২') ধারণকারী সারি খুঁজে বের করার কোয়েরি:

mysql> SELECT * FROM DemoTable WHERE FIND_IN_SET('2', ListOfValues) > 0;

আউটপুট:

+--------------+
| ListOfValues |
+--------------+
| 2,567,98,C   |
+--------------+

ব্যাখ্যা: FIND_IN_SET(str, strlist) ফাংশনটি strlist স্ট্রিং-এ str খুঁজে বের করে। যদি পায় তবে এর অবস্থান (১-ভিত্তিক) ফেরত দেয়, না পেলে ০ ফেরত দেয়। এখানে > 0 মানে হলো মানটি সেটে আছে।

সতর্কতা: এটি কমা-বিভক্ত স্ট্রিং-এ কাজ করে। যদি মানগুলোর মাঝপথে স্পেস থাকে (যেমন '1, 2, 3') তবে সঠিকভাবে কাজ নাও করতে পারে। সেক্ষেত্রে REPLACE(ListOfValues, ' ', '') ব্যবহার করে স্পেস সরিয়ে নিতে হয়।

  1. MySQL SELECT স্টেটমেন্টে NULL ব্যবহার

  2. MySQL-এ রিকারসিভ (Recursive) SELECT কোয়েরি করা

  3. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?

  4. MySQL-এ CONCAT_WS ব্যবহার করে শর্তসাপেক্ষ রো সিলেক্ট করা