Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wyszukać tekst zawierający emotikony?

Miałem sytuację, w której migracja db z jednego serwera na drugi spowodowała zniknięcie emoji. Musiałem więc znaleźć wszystkie wiersze w oryginalnej tabeli, które zawierały znaki z wysokim utf8 (emotikonami).

To zapytanie zadziałało zgodnie z oczekiwaniami:

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

przed zrobieniem czegokolwiek sprawdź, czy używasz utf8mb4 na swojej bazie danych, tabelach ORAZ połączeniu:

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. Tabela tymczasowa utworzona przez użytkownika MySQL jest pełna

  2. BŁĄD! Nie można znaleźć pliku PID menedżera MySQL lub serwera! QNAP

  3. Wypełnianie wielu tabel w ormie linii wodnej żagli

  4. Domyślna wartość TERAZ w dwóch kolumnach MySQL ERROR 1067

  5. Dynamicznie wypełniane menu rozwijane; Błąd zwracania $_POST