Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je rechercher du texte contenant des émoticônes ?

J'ai eu une situation où la migration de la base de données d'un serveur à un autre a fait disparaître les emoji. J'ai donc dû trouver toutes les lignes de la table d'origine qui contenaient des caractères utf8 (emoji) élevés.

Cette requête a fonctionné comme prévu :

SELECT field FROM `table` WHERE HEX(field) RLIKE "^(..)*F.";

avant de faire quoi que ce soit, vérifiez si vous utilisez utf8mb4 sur votre base de données, vos tables ET votre connexion :

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+