Разбрах го. Използвах вградения hex
на mysql функция за изхвърляне на запис, който знаех, че е лош.
select hex(column) from table where id=666;
След това избрах думите (тези числа, поставени между "20"s) и открих, че моят обиден набор от байтове всъщност е x'C3A2E282AC2671756F743B'
. Как това съответства на начина, по който го видях кодиран в PHP и от моята система (като e2 80
) Не знам и в този момент наистина не ме интересува.
За да проверите, преди да унищожите данните, ги включвате обратно в mysql:
select x'C3A2E282AC2671756F743B';
+---------------------------+
| x'C3A2E282AC2671756F743B' |
+---------------------------+
| â€" |
+---------------------------+
1 row in set (0.00 sec)
И така, използвайки заявката за замяна като по-горе, успях да се отърва от всички лоши данни наведнъж.
За протокола беше:
update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');
Силно се надявам това да е полезно за някого. Въпреки че грешките при кодирането изглеждат доста често срещани в mysql, търсих навсякъде и не можах да намеря обяснение за този в крайна сметка доста прост процес.