2016-12-17 2 views
1

Je stocke du texte avec emojis dans une base de données mysql. La base de données, la table et la colonne sont définies pour utiliser utf8mb4 et utf8mb4_unicode_ci.Mysql utf8mb4 égalité

Je peux saisir les valeurs de cellule sans problème (le type de données est VARCHAR).

Cependant, lorsque j'essaie d'interroger la base de données et de différencier les types d'emoji, mysql ne peut pas les différencier.

Par exemple, si je fais une recherche de la base de données pour la ligne où emoji_column = 'hello' Ensuite, il retournera toutes les lignes qui ont « bonjour » et tout emoji qui y est annexé (par exemple: « bonjour », « bonjour », etc.) .

Est-ce un comportement normal? Dois-je comparer les valeurs Hex si je veux une requête précise? Ou est-ce que quelque chose n'est pas configuré correctement?

(Les emojis sont stockés correctement, c'est-à-dire, si j'interroge la base de données par un autre paramètre, l'emoji correct est renvoyé).

Merci.

Répondre

2

Je pense que vous avez besoin de COLLATION utf8mb4_unicode_520_ci pour distinguer Emoji.

+0

Je vais essayer et mettre à jour ici. Merci. – theyuv

+0

Modification de l'assemblage n'a pas semblé aider. J'ai trouvé un rapport de ce problème ici: http://bugs.mysql.com/bug.php?id=76553 qui a suggéré le même correctif que vous avez fait. – theyuv

+0

Hmmmm ... Quelle version utilisez-vous? S'il vous plaît nous montrer 'SHOW CREATE TABLE'. Voyons voir 'SELECT HEX (emoji_column) FROM tbl WHERE emoji_column = = 'Bonjour'; –