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

MySQL '=' के साथ UTF-8 स्ट्रिंग का चयन करें लेकिन 'LIKE' के साथ नहीं

मार्कस एडम्स के जवाब को देखने के बाद मैंने महसूस किया कि इस समस्या का समाधान रिप्लेस फ़ंक्शन हो सकता है, हालांकि उन्होंने इस फ़ंक्शन का उल्लेख नहीं किया था।

जैसा कि मेरे पास केवल दो अलग-अलग संयोजन वर्ण (तीव्र और टिल्ड) हैं, जो अन्य ASCII वर्णों के साथ संयुक्त हैं, उदाहरण के लिए j टिल्ड के साथ, j एक्यूट के साथ, m टिल्ड के साथ, s टिल्ड के साथ, और इसी तरह। LIKE का उपयोग करते समय मुझे बस इन दो वर्णों को बदलना होगा।

मैनुअल को खोजने के बाद, मुझे UNHEX फ़ंक्शन के बारे में पता चला जिसने मुझे क्वेरी में अकेले संयोजन वर्णों को ठीक से निकालने में मदद की।

संयोजन टिल्ड का प्रतिनिधित्व CC83 . द्वारा किया जाता है HEX कोड में और एक्यूट को CC81 . द्वारा दर्शाया जाता है हेक्स में।

तो, मेरी समस्या का समाधान करने वाला प्रश्न यह है।

SELECT word, REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "")
FROM oldword WHERE REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "") 
LIKE 'hua%';`


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDOException php . में "ड्राइवर नहीं ढूंढ सका"

  2. लाखों पंक्ति तालिकाओं पर LIKE प्रश्नों का प्रदर्शन, MySQL

  3. नोड-mysql परिणाम पंक्तियों को नोड.जेएस के लिए एकल JSON रिटर्न में जोड़ना

  4. सामान्य एस्केप फ़ंक्शंस का उपयोग करने से एक MySQL तैयार कथन का अधिक सुरक्षित उपयोग क्यों कर रहा है?

  5. कमांड अजगर setup.py Egg_info त्रुटि कोड 1 के साथ /tmp/pip-install-fs0wmmw4/mysqlclient/ में विफल रहा