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

MySQL में एक्सेंट असंवेदनशील खोज क्वेरी

आप sql क्वेरी में रनटाइम पर कॉलेशन बदल सकते हैं,

...where title like '%torun%' collate utf8_general_ci

लेकिन सावधान रहें कि रनटाइम पर फ्लाई पर कॉलेशन बदलने से इंडेक्स का उपयोग करके MySQL की संभावना समाप्त हो जाती है, इसलिए बड़ी टेबल पर प्रदर्शन भयानक हो सकता है।

या, आप कॉलम को दूसरे कॉलम में कॉपी कर सकते हैं, जैसे searchable_title , लेकिन उस पर संयोजन बदलें। इस प्रकार की चीजें करना वास्तव में आम है, जहां आप डेटा कॉपी करते हैं लेकिन इसे कुछ अलग रूप में रखते हैं जो कुछ विशिष्ट कार्यभार/उद्देश्य के लिए अनुकूलित होता है। डुप्लिकेट किए गए कॉलम को सिंक में रखने के लिए आप ट्रिगर्स को एक अच्छे तरीके के रूप में उपयोग कर सकते हैं। अनुक्रमित होने पर इस पद्धति में अच्छा प्रदर्शन करने की क्षमता है।

नोट - सुनिश्चित करें कि आपके डीबी में वास्तव में वे वर्ण हैं और एचटीएमएल इकाइयां नहीं हैं। साथ ही, आपके कनेक्शन का वर्ण सेट मायने रखता है। उपरोक्त मानता है कि यह utf8 पर सेट है, उदाहरण के लिए, set के माध्यम से नाम जैसे set names utf8

यदि नहीं, तो आपको एक परिचयकर्ता की आवश्यकता है शाब्दिक मूल्य के लिए

...where title like _utf8'%torun%' collate utf8_general_ci

और निश्चित रूप से, सिंगल कोट्स में मान वास्तव में utf8 एन्कोडेड होना चाहिए, भले ही शेष sql क्वेरी न हो।



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

  2. MYSQL:उपयोगकर्ता - प्रोफ़ाइल विवरण तालिका सेटअप - सर्वोत्तम अभ्यास

  3. केकपीएचपी डाटाबेस कनेक्शन मैसकल गुम है, या नहीं बनाया जा सका

  4. MySQL - ORDER DESC के साथ GROUP BY काम नहीं कर रहा है

  5. जेपीए + हाइबरनेट:डिलीट कैस्केड पर होने वाली बाधा को कैसे परिभाषित करें