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

मैं utf8mb4 का उपयोग करके MySQL में इमोजी द्वारा कैसे खोज सकता हूं?

आप utf8mb4_unicode_ci . का उपयोग करते हैं आपके कॉलम के लिए, इसलिए चेक केस असंवेदनशील है। अगर आप utf8mb4_bin का उपयोग करते हैं इसके बजाय, इमोजी 🌮 और 🌶 को अलग-अलग अक्षरों के रूप में सही ढंग से पहचाना जाता है।

WEIGHT_STRING के साथ आप इनपुट स्ट्रिंग के लिए छँटाई और तुलना के लिए उपयोग किए जाने वाले मान प्राप्त कर सकते हैं।

अगर आप लिखते हैं:

SELECT
  WEIGHT_STRING ('🌮' COLLATE 'utf8mb4_unicode_ci'),
  WEIGHT_STRING ('🌶' COLLATE 'utf8mb4_unicode_ci')

तब आप देख सकते हैं कि दोनों 0xfffd . हैं . यूनिकोड कैरेक्टर सेट में वे कहते हैं:

अगर आप लिखते हैं:

SELECT 
  WEIGHT_STRING('🌮' COLLATE 'utf8mb4_bin'),
  WEIGHT_STRING('🌶' COLLATE 'utf8mb4_bin')

आपको उनका यूनिकोड मान मिलेगा 0x01f32e और 0x01f336 इसके बजाय।

अन्य अक्षरों जैसे Ä . के लिए , Á और A यदि आप utf8mb4_unicode_ci . का उपयोग करते हैं तो यह समान हैं , अंतर इसमें देखा जा सकता है:

SELECT
  WEIGHT_STRING ('Ä' COLLATE 'utf8mb4_unicode_ci'),
  WEIGHT_STRING ('A' COLLATE 'utf8mb4_unicode_ci')

वे वजन के लिए मैप करते हैं 0x0E33

Ä: 00C4  ; [.0E33.0020.0008.0041][.0000.0047.0002.0308] # LATIN CAPITAL LETTER A WITH DIAERESIS; QQCM
A: 0041  ; [.0E33.0020.0008.0041] # LATIN CAPITAL LETTER A

इसके अनुसार:MariaDB/MySQL में utf8mb4_unicode_ci और utf8mb4_unicode_520_ci कोलाजेशन के बीच अंतर? utf8mb4_unicode_ci . के लिए उपयोग किए जाने वाले वज़न UCA 4.0.0 पर आधारित हैं क्योंकि इमोजी वहां दिखाई नहीं देते, मैप किया गया वज़न 0xfffd . है

यदि आपको इमोजी के साथ-साथ नियमित अक्षरों के लिए केस असंवेदनशील तुलना और सॉर्ट की आवश्यकता है तो यह समस्या utf8mb4_unicode_520_ci का उपयोग करके हल की जाती है :

SELECT
  WEIGHT_STRING('🌮' COLLATE 'utf8mb4_unicode_520_ci'),
  WEIGHT_STRING('🌶' COLLATE 'utf8mb4_unicode_520_ci')

उन इमोजी के लिए अलग वज़न भी मिलेगा 0xfbc3f32e और 0xfbc3f336



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL WHERE कंडीशन किसके बराबर नहीं है?

  2. कैसे अवरोही क्रम में mysql डेटा लाने के लिए?

  3. PDOException php . में "ड्राइवर नहीं ढूंढ सका"

  4. MySQL में रूट उपयोगकर्ता को सभी विशेषाधिकार वापस कैसे प्राप्त करें?

  5. बाइंड एड्रेस और MySQL सर्वर