Přišel jsem na to. Použil jsem vestavěný hex
mysql funkce vypsat záznam, o kterém jsem věděl, že je špatný.
select hex(column) from table where id=666;
Pak jsem vybral slova (tato čísla vložená mezi "20" s) a zjistil, že moje problematická sada bajtů byla ve skutečnosti x'C3A2E282AC2671756F743B'
. Jak to odpovídá tomu, jak jsem to viděl zakódované v PHP a mým systémem (jako e2 80
) Nevím a v tuto chvíli je mi to vlastně jedno.
Chcete-li ověřit, před zničením dat je zapojte zpět do mysql:
select x'C3A2E282AC2671756F743B';
+---------------------------+
| x'C3A2E282AC2671756F743B' |
+---------------------------+
| â€" |
+---------------------------+
1 row in set (0.00 sec)
Takže pomocí nahrazovacího dotazu jako výše jsem se dokázal zbavit všech špatných dat najednou.
Pro záznam to bylo:
update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');
Opravdu doufám, že to bude pro někoho užitečné. Ačkoli se zdá, že kódování snafus je v mysql docela běžné, hledal jsem všude a nemohl jsem najít vysvětlení pro tento nakonec poměrně jednoduchý proces.