Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जहां_इन और find_in_set . के बीच अंतर

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP फ्लोट/डबल को MySQL DECIMAL के रूप में संग्रहीत किया जाता है

  2. मैसकल:पंक्तियाँ खोजें, जहाँ टाइमस्टैम्प अंतर x . से कम है

  3. फ़ंक्शन बनाने पर सिंटैक्स त्रुटि प्राप्त करना

  4. Wordpress अपने डेटाबेस में श्रेणियों के लिए पोस्ट कैसे लिंक करता है?

  5. sql वेन आरेख के रूप में जुड़ता है