/ / MySQL के विशेष पात्र जब एक सेलेक्ट करते हैं तो विशेष वर्णों के बिना दूसरों के परिणाम दिखाते हैं - mysql, रूबी-ऑन-रेल, चरित्र-एन्कोडिंग, विशेष-वर्ण

एक SELECT करते समय MySQL विशेष वर्ण विशेष वर्णों के बिना अन्य परिणाम दिखाते हैं - mysql, रूबी-ऑन-रेल, वर्ण-एन्कोडिंग, विशेष-वर्ण

हमारे पास एक टेबल है जिसमें दो सौ टैग हैं उनमें से कुछ में विशेष वर्ण (स्पेनिश वर्ण) हैं। और उन टैगों में से कुछ में समान अक्षर हो सकते हैं, लेकिन विशेष वर्णों के साथ और बिना समान स्ट्रिंग नहीं।

मुझे एक उदाहरण दिखाते हैं:

 select * from tags where name = "olga tañón";

मैं "ओल्गा टैनोन" वाले विशिष्ट पंक्ति में परिणाम प्राप्त करने की उम्मीद करूंगा, लेकिन इसके बजाय MySQL मुझे परिणाम के रूप में दे रहा है:

 olga tañón
olga tañon
olga tanon

ध्यान दें कि एक ही अक्षर है, लेकिन उनमें से कुछ में विशेष वर्ण (ñ और ó) हैं और अन्य "t। तालिका एन्कोडिंग है। लैटिन 1 है। हम रेल 3.2 और MySQL 5.x का उपयोग कर रहे हैं।

यहां एक उदाहरण कोड है

 Tag.where(:name => "olga tañón")
Tag Load (94.6ms)  SELECT `tags`.* FROM `tags` WHERE `tags`.`name` = "olga tañón"
=> [#<Tag id: 57502, name: "olga tañón">, #<Tag id: 75642, name: "olga tañon">, #<Tag id: 114622, name: "olga tanon">]

जब हम विशेष वर्णों के साथ क्वेरी चलाते हैं, तो हम चयन परिणाम में ठीक स्ट्रिंग प्राप्त करना चाहते हैं तो हम क्या कर सकते हैं।

धन्यवाद!

उत्तर:

जवाब के लिए 3 № 1

मुझे लगता है कि आपको कोलाज को निर्दिष्ट करने की आवश्यकता है - इसे देखें http://code.openark.org/blog/mysql/mysqls-character-sets-and-collations-demystified और इस http://dev.mysql.com/doc/refman/5.6/en/charset-collation-charset.html और इस http://dev.mysql.com/doc/refman/5.6/en/charset-collation-effect.html