Tôi đã hiểu rồi. Tôi đã sử dụng nội trang của mysql hex
chức năng kết xuất một mục nhập mà tôi biết là không hợp lệ.
select hex(column) from table where id=666;
Sau đó, chọn ra các từ (những số đó kẹp giữa "20" s) và phát hiện ra rằng tập hợp byte vi phạm của tôi trên thực tế là x'C3A2E282AC2671756F743B'
. Điều này tương ứng như thế nào với cách tôi thấy nó được mã hóa bằng PHP và bằng hệ thống của tôi (dưới dạng e2 80
) Tôi không biết và tại thời điểm này, tôi không thực sự quan tâm.
Để xác minh, trước khi hủy dữ liệu, bạn cắm lại dữ liệu đó vào mysql:
select x'C3A2E282AC2671756F743B';
+---------------------------+
| x'C3A2E282AC2671756F743B' |
+---------------------------+
| â€" |
+---------------------------+
1 row in set (0.00 sec)
Vì vậy, bằng cách sử dụng truy vấn thay thế như trên, tôi đã có thể loại bỏ tất cả dữ liệu xấu cùng một lúc.
Đối với hồ sơ đó là:
update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');
Tôi thực sự hy vọng điều này hữu ích cho ai đó. Mặc dù snafus mã hóa có vẻ khá phổ biến trong mysql, nhưng tôi đã tìm kiếm mọi nơi và cuối cùng tôi không thể tìm ra lời giải thích cho quá trình khá đơn giản này.