sql >> Base de Datos >  >> RDS >> Mysql

reemplazar caracteres basura dentro de mysql

Me lo imaginé. Usé el hex incorporado de mysql función para volcar una entrada que sabía que era mala.

    select hex(column) from table where id=666;

Luego seleccioné las palabras (esos números intercalados entre "20") y descubrí que mi conjunto ofensivo de bytes era de hecho x'C3A2E282AC2671756F743B' . Cómo esto corresponde a la forma en que lo vi codificado en PHP y por mi sistema (como e2 80 ) No lo sé y, en este momento, realmente no me importa.

Para verificar, antes de destruir los datos, vuelva a conectarlos a mysql:

    select x'C3A2E282AC2671756F743B';
    +---------------------------+
    | x'C3A2E282AC2671756F743B' |
    +---------------------------+
    | â€"               |
    +---------------------------+
    1 row in set (0.00 sec)

Entonces, usando la consulta de reemplazo como la anterior, pude deshacerme de todos los datos incorrectos a la vez.

Para que conste fue:

    update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');

Realmente espero que esto sea útil para alguien. Aunque los errores de codificación parecen ser bastante comunes en mysql, busqué en todas partes y no pude encontrar una explicación para este proceso bastante simple en última instancia.