Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

substituir caracteres de lixo dentro do mysql


Eu descobri. Eu usei o hex embutido do mysql função para despejar uma entrada que eu sabia que era ruim.
    select hex(column) from table where id=666;

Em seguida, selecionei as palavras (esses números entre "20"s) e descobri que meu conjunto de bytes ofensivo era na verdade x'C3A2E282AC2671756F743B' . Como isso corresponde à maneira como o vi codificado em PHP e pelo meu sistema (como e2 80 ) Eu não sei e neste momento, eu realmente não me importo.

Para verificar, antes de destruir os dados, você os conecta de volta ao mysql:
    select x'C3A2E282AC2671756F743B';
    +---------------------------+
    | x'C3A2E282AC2671756F743B' |
    +---------------------------+
    | â€"               |
    +---------------------------+
    1 row in set (0.00 sec)

Então, usando a consulta de substituição como acima, consegui me livrar de todos os dados ruins de uma só vez.

Para o registro foi:
    update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');

Eu realmente espero que isso seja útil para alguém. Embora a codificação pareça ser bastante comum no mysql, procurei em todos os lugares e não consegui encontrar uma explicação para esse processo, em última análise, bastante simples.