sql >> Databasteknik >  >> RDS >> Mysql

Hur skulle jag söka efter text som innehåller emojis?

Jag har haft en situation där db-migrering från en server till en annan fick emoji att försvinna. Så jag var tvungen att hitta alla rader i den ursprungliga tabellen som innehöll höga utf8-tecken (emoji).

Den här frågan fungerade som förväntat:

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

innan du gör något kontrollera om du använder utf8mb4 på din db, tabeller OCH anslutning:

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 |
+--------------------------+--------------------+


  1. Skapa en flerdimensionell array från fråga

  2. Infoga post i tabell med position utan att uppdatera alla postpositionsfält

  3. PHP/MySQL kopierar data i bitar från en tabell till en annan via en laddningsknapp

  4. Oracle Joins - Jämförelse mellan konventionell syntax VS ANSI-syntax