Mysql
 sql >> Base de données >  >> RDS >> Mysql

remplacer les caractères inutiles dans mysql

Je l'ai compris. J'ai utilisé le hex intégré de mysql fonction pour vider une entrée que je savais être mauvaise.

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

Puis j'ai choisi les mots (ces nombres pris en sandwich entre "20") et j'ai découvert que mon ensemble d'octets incriminés était en fait x'C3A2E282AC2671756F743B' . Comment cela correspond à la façon dont je l'ai vu encodé en PHP et par mon système (comme e2 80 ) Je ne sais pas et à ce stade, je m'en fous.

Pour vérifier, avant de détruire les données, vous reconnectez cela à mysql :

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

Ainsi, en utilisant la requête de remplacement comme ci-dessus, j'ai pu me débarrasser de toutes les mauvaises données à la fois.

Pour info c'était :

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

J'espère vraiment que cela est utile pour quelqu'un. Bien que l'encodage de snafus semble être assez courant dans mysql, j'ai cherché partout et je n'ai pas trouvé d'explication à ce processus finalement assez simple.