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

समस्या निवारण Mysql में कॉलेशन त्रुटि का अवैध मिश्रण

यह आम तौर पर असंगत संयोजन के दो तारों की तुलना करने या विभिन्न संयोजन के डेटा को एक संयुक्त कॉलम में चुनने का प्रयास करने के कारण होता है।

क्लॉज COLLATE आपको क्वेरी में उपयोग किए गए संयोजन को निर्दिष्ट करने की अनुमति देता है।

उदाहरण के लिए, निम्नलिखित WHERE क्लॉज हमेशा आपके द्वारा पोस्ट की गई त्रुटि देगा:

WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs

आपका समाधान क्वेरी के भीतर दो स्तंभों के लिए एक साझा संयोजन निर्दिष्ट करना है। यहां एक उदाहरण दिया गया है जो COLLATE . का उपयोग करता है खंड:

SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;

एक अन्य विकल्प BINARY . का उपयोग करना है ऑपरेटर:

<ब्लॉकक्वॉट>

BINARY str CAST(str AS BINARY) का शॉर्टहैंड है।

आपका समाधान कुछ इस तरह दिख सकता है:

SELECT * FROM table WHERE BINARY a = BINARY b;

या,

SELECT * FROM table ORDER BY BINARY a;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में पिछले 12 महीनों का डेटा कैसे प्राप्त करें

  2. MySQL में निर्दिष्ट स्थान पर सूची आइटम कैसे खोजें

  3. साझा सर्वर पर MySQL उपयोगकर्ता विशेषाधिकार

  4. एक MySQL डंप उत्पन्न करने के लिए एक .php फ़ाइल का उपयोग करना

  5. MySQL का उपयोग करने के लिए Django की स्थापना