MySQL-এ কমা-বিভক্ত (comma-separated) তালিকায় কোনো নির্দিষ্ট মান রয়েছে কিনা যাচাই করতে FIND_IN_SET() ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স
SELECT * FROM yourTableName WHERE FIND_IN_SET('yourValue', yourColumnName) > 0;
উদাহরণ
প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE existInCommaSeparatedList (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(200)
-> );
ডেটা ইনসার্ট করি:
mysql> INSERT INTO existInCommaSeparatedList(Name) VALUES('John,Carol,Sam,Larry,Bob,David');
mysql> INSERT INTO existInCommaSeparatedList(Name) VALUES('Maxwell,Chris,James');
mysql> INSERT INTO existInCommaSeparatedList(Name) VALUES('Robert,Ramit');
সকল রেকর্ড দেখি:
mysql> SELECT * FROM existInCommaSeparatedList;
+----+--------------------------------+ | Id | Name | +----+--------------------------------+ | 1 | John,Carol,Sam,Larry,Bob,David | | 2 | Maxwell,Chris,James | | 3 | Robert,Ramit | +----+--------------------------------+
এখন "Robert" আছে কিনা যাচাই করি:
mysql> SELECT * FROM existInCommaSeparatedList WHERE FIND_IN_SET('Robert', Name) > 0;
+----+--------------+ | Id | Name | +----+--------------+ | 3 | Robert,Ramit | +----+--------------+
গুরুত্বপূর্ণ: FIND_IN_SET() কেস-ইনসেনসিটিভ (case-insensitive) এবং কমা (,) দিয়ে বিভক্ত স্ট্রিংয়ের জন্য কাজ করে। যদি কলামে স্পেস থাকে (যেমন "John, Carol") তবে সেটি সঠিক কাজ নাও করতে পারে।