WHERE IN
क्वेरी में शाब्दिक रूप से निर्दिष्ट किए जाने वाले मानों के सेट की आवश्यकता होती है, न कि अल्पविराम-सीमांकित स्ट्रिंग वाले एकल मान के रूप में। अगर आप लिखते हैं:
WHERE 6 IN (a.allowed_activity)
यह a.allowed_activity
. का इलाज करेगा केवल एक मान के रूप में, और इसकी तुलना 6
. से करें , खोजने के लिए एकाधिक मानों के सेट के रूप में नहीं।
FIND_IN_SET
मान के लिए अल्पविराम-सीमांकित स्ट्रिंग की खोज करता है।
इसे देखने का दूसरा तरीका यह है कि IN
=
. के समूह के लिए एक शॉर्टकट है OR
. के साथ संयुक्त परीक्षण :
WHERE x IN (a, b, c, d)
के लिए संक्षिप्त है
WHERE x = a OR x = b OR x = c OR x = d
जब आप इसे इस तरह फिर से लिखते हैं, तो आप स्पष्ट रूप से देख सकते हैं कि यह कॉमा-सीमांकित स्ट्रिंग वाले कॉलम के साथ क्यों काम नहीं करेगा। यह बस अनुवाद करता है
WHERE 6 IN (a.allowed_activity)
करने के लिए:
WHERE 6 = a.allowed_activity