जैसा कि हम जानते हैं, दोनों फ़ंक्शन उनमें प्रदान किए गए आर्गुमेंट्स से एक स्ट्रिंग खोजने के लिए उपयोग किए जाते हैं लेकिन उनके बीच कुछ महत्वपूर्ण अंतर हैं:
- FIND_IN_SET() फ़ंक्शन स्ट्रिंग सूची का उपयोग करता है जो स्वयं एक स्ट्रिंग है जिसमें सबस्ट्रिंग कॉमा से अलग होते हैं। जबकि, INSTR() फ़ंक्शन में एक स्ट्रिंग होती है जिससे यह सबस्ट्रिंग की पहली घटना की स्थिति ढूंढेगा यदि मौजूद है।
- पूर्णांकों के मामले में, FIND_IN_SET() INSTR() फ़ंक्शन की तुलना में अधिक उपयुक्त है। इसे निम्नलिखित उदाहरण से समझा जा सकता है:
उदाहरण
mysql> Select IF(INSTR('10,11,12,13',2) > 0,1,0) As Result;
+--------+
| Result |
+--------+
| 1 |
+--------+
1 row in set (0.05 sec)
mysql> Select IF(FIND_IN_SET(2,'10,11,12,13') > 0,1,0)As Result;
+--------+
| Result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
उपरोक्त उदाहरणों के परिणाम सेट से, हम देख सकते हैं कि INSTR() फ़ंक्शन 1 लौटाता है भले ही 2 स्ट्रिंग के रूप में आर्गुमेंट्स में मौजूद नहीं है। लेकिन FIND_IN_SET() फ़ंक्शन 0 लौटाता है जो सही उत्तर है।