Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да търся текст, който съдържа емоджи?

Имах ситуация, при която миграцията на db от един сървър към друг доведе до изчезване на емоджи. Така че трябваше да намеря всички редове в оригиналната таблица, която съдържаше високи utf8 (емоджи) знаци.

Тази заявка работи според очакванията:

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

преди да направите нещо, проверете дали използвате utf8mb4 на вашия db, таблици И връзка:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кога е време таблицата да се промени от MyISAM на InnoDb?

  2. PHP PDO SQL връща само един ред данни вместо всички редове

  3. Експортиране на данните ми от Google Chart (таблица) в excel или csv

  4. Свържете се с Docker MySQL контейнер от localhost?

  5. Грешка „Вече имате използваема връзка“ в Visual Studio 2015 при добавяне на източник на данни