MySQL-এ কমা-সেপারেটেড মান থাকা কলামে নির্দিষ্ট সংখ্যা আছে কিনা চেক করতে CONCAT এবং LIKE ব্যবহার করা হয়।
সিনট্যাক্স
SELECT * FROM yourTableName
WHERE CONCAT(',', yourColumnName, ',') LIKE '%,yourValue,%';
উদাহরণ
টেবিল তৈরি:
CREATE TABLE demo49 (
id VARCHAR(20),
first_name VARCHAR(20)
);
ডেটা ইনসার্ট:
INSERT INTO demo49 VALUES ('4,5,6', 'Adam');
INSERT INTO demo49 VALUES ('5,3,2', 'Mike');
INSERT INTO demo49 VALUES ('3,4,9', 'Bob');
টেবিলের ডেটা:
+-------+------------+ | id | first_name | +-------+------------+ | 4,5,6 | Adam | | 5,3,2 | Mike | | 3,4,9 | Bob | +-------+------------+
কোয়েরি
সंख্যা ৪ থাকা রোগুলো সিলেক্ট:
SELECT * FROM demo49
WHERE CONCAT(',', id, ',') LIKE '%,4,%';
আউটপুট
+-------+------------+ | id | first_name | +-------+------------+ | 4,5,6 | Adam | | 3,4,9 | Bob | +-------+------------+
ব্যাখ্যা: CONCAT(',', id, ',') দিয়ে স্ট্রিংয়ের শুরু ও শেষে কমা যোগ করা হয়েছে। তারপর LIKE '%,4,%' দিয়ে ,4, প্যাটার্ন খুঁজা হয়েছে। এতে পার্শিয়াল ম্যাচ (যেমন ১৪, ৪০) এড়ানো যায়।
বিকল্প: MySQL-এ FIND_IN_SET('4', id) ফাংশনও ব্যবহার করা যায়, যা কমা-সেপারেটেড স্ট্রিংয়ের জন্য বিল্ট-ইন।