2016-12-17 6 views
1

私はemojisでテキストをmysqlデータベースに保存しています。mysql utf8mb4 equality

データベース、テーブル、および列は、utf8mb4utf8mb4_unicode_ciを使用するように設定されています。

セルの値を問題なく入力できます(データ型はVARCHAR)。

ただし、データベースにクエリを実行して絵文字タイプを区別しようとすると、mysqlは区別できません。例えば

、Iはemoji_column = 'hello'それは「こんにちは」とそれに添付任意絵文字(例えば:「こんにちは」、「こんにちは」、等)を持つすべての行が返される行のデータベースを照会する場合。

これは正常な動作ですか?正確なクエリが必要な場合は、16進数の値を比較する必要がありますか?それとも、正しく設定されていないものがありますか?

(emojisは正しく格納されます。つまり、別のパラメータでデータベースにクエリを実行すると、正しい絵文字が返されます)。

ありがとうございました。

答えて

2

絵文字を区別するにはCOLLATION utf8mb4_unicode_520_ciが必要だと思います。

+0

ここで試してみましょう。ありがとう。 – theyuv

+0

照合順序を変更することは役に立たないようです。私はこの問題の報告書をhttp://bugs.mysql.com/bug.php?id=76553で見つけましたが、それは同じ修正を提案したものです。 – theyuv

+0

Hmmmm ...あなたはどのバージョンを実行していますか? 'SHOW CREATE TABLE'を表示してください。 SELECT HEX(emoji_column)FROM tbl WHERE emoji_column = = 'hello''を見てみましょう。 –

関連する問題