দুই ফাংশনই আর্গুমেন্ট হিসেবে দেওয়া স্ট্রিং থেকে সার্চ করতে ব্যবহৃত হয় কিন্তু তাদের মধ্যে উল্লেখযোগ্য পার্থক্য রয়েছে:
FIND_IN_SET() — ফাংশনটি স্ট্রিং লিস্ট ব্যবহার করে যা নিজে একটি স্ট্রিং যেটিতে সাবস্ট্রিংগুলো কমা দিয়ে আলাদা করা থাকে। FIELD() ফাংশন হিসেবে আলাদা আলাদা স্ট্রিংগুলো থাকে যাদের মধ্যে থেকে সার্চ স্ট্রিংর সূচক বের করা হয়।
FIND_IN_SET() — আর্গুমেন্টগুলোতে যেকোনোটি NULL থাকলে (সার্চ স্ট্রিং বা স্ট্রিং লিস্ট) NULL ফেরত দেয়। অন্যদিকে FIELD() ফাংশন NULL ফেরত দেয় না, বরং সার্চ স্ট্রিং NULL হলে ০ ফেরত দেয়।
উদাহরণ
mysql> SELECT FIND_IN_SET(NULL, 'Ram is a good boy') AS Result;
+--------+
| Result |
+--------+
| NULL |
+--------+
1 row in set (0.00 sec)
mysql> SELECT FIND_IN_SET('RAM', NULL) AS RESULT;
+--------+
| RESULT |
+--------+
| NULL |
+--------+
1 row in set (0.00 sec)
mysql> SELECT FIELD(NULL, 'Ram', 'is', 'good', 'boy');
+-------------------------------------+
| FIELD(NULL, 'Ram', 'is', 'good', 'boy') |
+-------------------------------------+
| 0 |
+-------------------------------------+
1 row in set (0.00 sec)