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

MySQL-এ FIND_IN_SET ব্যবহার করে কমা-সেপারেটেড কলামে নির্দিষ্ট সংখ্যা খুঁজে রো সিলেক্ট করা

MySQL-এ কমা-সেপারেটেড মান থাকা কলামে নির্দিষ্ট সংখ্যা আছে কিনা চেক করতে বিল্ট-ইন FIND_IN_SET() ফাংশন ব্যবহার করা সবচেয়ে সহজ এবং দক্ষ।

সিনট্যাক্স

SELECT * FROM yourTableName WHERE FIND_IN_SET('searchValue', yourColumnName) > 0;

উদাহরণ

টেবিল তৈরি:

CREATE TABLE demo73 (
    interest_id VARCHAR(100),
    interest_name VARCHAR(100)
);

ডেটা ইনসার্ট:

INSERT INTO demo73 VALUES ('100,101,103,105', 'SSC');
INSERT INTO demo73 VALUES ('105,103,1005,1003,104', 'Computer');
INSERT INTO demo73 VALUES ('110,105,104,111', 'Novel');

টেবিলের ডেটা:

+-----------------------+---------------+
| interest_id           | interest_name |
+-----------------------+---------------+
| 100,101,103,105       | SSC           |
| 105,103,1005,1003,104 | Computer      |
| 110,105,104,111       | Novel         |
+-----------------------+---------------+

কোয়েরি

সংখ্যা ১০৩ থাকা রোগুলো সিলেক্ট:

SELECT * FROM demo73 WHERE FIND_IN_SET('103', interest_id) > 0;

আউটপুট

+-----------------------+---------------+
| interest_id           | interest_name |
+-----------------------+---------------+
| 100,101,103,105       | SSC           |
| 105,103,1005,1003,104 | Computer      |
+-----------------------+---------------+

ব্যাখ্যা:

  • FIND_IN_SET(str, strlist) কমা-সেপারেটেড স্ট্রিং strlist-এ str খুঁজে পозиশন (১-ভিত্তিক) রিটার্ন করে। না পেলে ০।
  • CONCAT/LIKE প্যাটার্নের চেয়ে এটি দ্রুত এবং সঠিক (পার্শিয়াল ম্যাচ এড়ায়, যেমন ১০৩ vs ১১০৩)।
  • केवल কমা (,) সেপারেটরের জন্য কাজ করে। অন্যান্য সেপারেটরের জন্য REGEXP বা LIKE ব্যবহার করুন।

নোট: FIND_IN_SET কেস-ইনসেনসিটিভ (ডিফল্ট কলেশন অনুযায়ী)। বড় ডেটাসেটে ইনডেক্স ব্যবহার করে না (ফুল টেবিল স্ক্যান)।

  1. MySQL SELECT কোয়েরি নির্দিষ্ট মাস ও বছরের রেকর্ড রিটার্ন করার জন্য

  2. MySQL-এ information_schema.columns ব্যবহার করে দুটি নির্দিষ্ট কলামযুক্ত টেবিল খুঁজে বের করা

  3. MySQL-এ REGEXP ব্যবহার করে নির্দিষ্ট সংখ্যক শব্দ থাকা রেকর্ড ফিল্টার করুন

  4. MySQL-এ কমা-সেপারেটেড স্ট্রিংয়ে নির্দিষ্ট সংখ্যা খুঁজে রো সিলেক্ট করা