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

UTF-8 बनाम लैटिन1 mysql, utf-8 पर अनुक्रमणिका का उपयोग नहीं किया गया

अनुक्रमणिका का उपयोग केवल तभी किया जा सकता है जब व्यंजक का मिलान अनुक्रमित स्तंभ से मेल खाता हो।

यदि व्यंजक का COERCIBILITY . है कॉलम की तुलना में कम है (अर्थात 2 ), कॉलम का कोलाज एक्सप्रेशन से कास्ट किया जाता है, और इंडेक्स का उपयोग नहीं किया जाता है।

आम तौर पर, शाब्दिक में COERCIBILITY होता है का 4 और उपयोगकर्ता चर जो 3 . के हैं , तो यह कोई समस्या नहीं होनी चाहिए।

हालांकि, अगर आप JOIN . में अलग-अलग कॉलेशन मिलाते हैं या UNION , कास्ट ऑर्डर की गारंटी नहीं है।

इस मामले में आपको उस कॉलम को स्पष्ट मिलान प्रदान करना चाहिए जिसे आप कास्टिंग कर रहे हैं (संभवतः, आप latin1 डालना चाहते हैं करने के लिए UTF8 ), और यह उस कॉलम का मिलान होना चाहिए जिसे आप कास्ट कर रहे हैं:

SELECT  *
FROM    utf_table
JOIN    latin_table
ON      utf_column = latin_column COLLATE UTF8_GENERAL_CI


  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 क्वेरी कॉलम में वर्णों को सीमित करें

  2. एक दूसरे पर निर्भर एकाधिक प्रश्न

  3. JSON स्ट्रिंग को MySQL डेटाबेस में सहेजा जा रहा है

  4. मैसक्लि फ़ेच ऐरे nth row

  5. अद्यतन के लिए चयन का उपयोग क्यों करें?