Ich hatte eine Situation, in der die DB-Migration von einem Server zu einem anderen dazu führte, dass Emoji verschwand. Also musste ich alle Zeilen in der Originaltabelle finden, die hohe UTF8-Zeichen (Emoji) enthielten.
Diese Abfrage hat wie erwartet funktioniert:
SELECT field FROM `table` WHERE HEX(field) RLIKE "^(..)*F.";
Bevor Sie irgendetwas tun, überprüfen Sie, ob Sie utf8mb4 auf Ihrer Datenbank, Ihren Tabellen UND Ihrer Verbindung verwenden:
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 |
+--------------------------+--------------------+