সতর্কতা: IN() তে কমা-বিভক্ত স্ট্রিং একক মান হিসেবে বিবেচিত হয়
MySQL-এ IN('10,20,50') লিখলে এটি **একক স্ট্রিং মান** '10,20,50' হিসেবে বিবেচনা করে, আলাদা আলাদা তিনটি মান (10, 20, 50) হিসেবে নয়। এটি একটি সাধারণ ভুল।
উদাহরণ
mysql> CREATE TABLE DemoTable1314 (Number VARCHAR(100));
mysql> INSERT INTO DemoTable1314 VALUES ('45,67,89'), ('10,20,50'), ('90,56,45');
mysql> SELECT * FROM DemoTable1314;
কুয়েরি: IN('10,20,50') ব্যবহার
mysql> SELECT * FROM DemoTable1314 WHERE Number IN ('10,20,50');
ফলাফল
+----------+
| Number |
+----------+
| 10,20,50 |
+----------+
সঠিক পদ্ধতি: আপনি যদি আলাদা আলাদা মান খুঁজতে চান, তবে ডাইনামিক SQL বা FIND_IN_SET() ফাংশন ব্যবহার করুন:
SELECT * FROM DemoTable1314 WHERE FIND_IN_SET('10', Number) > 0;
অথবা অ্যাপ্লিকেশন লেভেলে স্ট্রিং পার্স করে আলাদা আলাদা মান হিসেবে IN(10, 20, 50) পাস করুন।