Tôi đã gặp tình huống trong đó việc di chuyển db từ máy chủ này sang máy chủ khác khiến biểu tượng cảm xúc biến mất. Vì vậy, tôi phải tìm tất cả các hàng trong bảng gốc có chứa các ký tự utf8 (biểu tượng cảm xúc) cao.
Truy vấn này hoạt động như mong đợi:
SELECT field FROM `table` WHERE HEX(field) RLIKE "^(..)*F.";
trước khi làm bất cứ điều gì, hãy kiểm tra xem bạn có đang sử dụng utf8mb4 trên db, bảng VÀ kết nối của mình không:
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 |
+--------------------------+--------------------+