2011-07-15 11 views
1

[OK]をクリックして、誰かがこの質問をしたようです。SQLによる文字列の不正確な照合

thiep cuoi 
thiệp cưới 

問題は、私はCOUNTたときに()これらのmysqlのは、同じように、これらの2つのを結合します次のとおりです。

だから私は2つの単語を持っています。たとえば、このSQL:

#lets assume these two words have an id of 1 and 2 and that the column name 
#in the table is `word` 

SELECT `word`, COUNT(`word`) 
FROM table_name 
WHERE `id` IN(1,2) 
GROUP BY `word`; 

は、どのように私は、MySQLでこの動作を回避することができ、これらはUTF-8を介して同じ言葉ではありません2のカウントは1行として二つの言葉を返すのだろうか? MySQLはUTF-8でグループ化せず、ASCIIに変換しませんか? :/

答えて

3

MySQLは、カラムで設定した照合順序を使用して、文字の平等性を判断します。この列に設定した照合では、これらの文字は比較の目的で等しいとみなされます。 MySQLはいかなる種類の変換も行いません。

http://dev.mysql.com/doc/refman/5.5/en/charset-general.html

おそらくlatin1_general_ciまたはutf8_general_ciのような一般的なものを使用しています。これらの文字を異なるものとして扱うには、おそらくバイナリの照合が必要です。 SHOW COLLATION LIKE 'utf8%'のようなクエリーを実行して、ご使用のサーバーで使用可能なものを確認してください。

+0

ええとutf8-binがこれを修正しました。またこれを見つけた:http://stackoverflow.com/questions/2344118/utf-8-general-bin-unicode – DataHerder

関連する問題