Mysql
 sql >> Database >  >> RDS >> Mysql

sostituire i caratteri spazzatura all'interno di mysql

L'avevo capito. Ho usato il builtin di mysql hex funzione per scaricare una voce che sapevo non era valida.

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

Quindi ho scelto le parole (quei numeri racchiusi tra "20") e ho scoperto che il mio set offensivo di byte era in realtà x'C3A2E282AC2671756F743B' . Come corrisponde al modo in cui l'ho visto codificato in PHP e dal mio sistema (come e2 80 ) Non lo so ea questo punto non mi interessa molto.

Per verificare, prima di distruggere i dati, ricollegalo a mysql:

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

Quindi, utilizzando la query di sostituzione come sopra, sono stato in grado di eliminare tutti i dati non validi in una volta.

Per la cronaca era:

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

Spero davvero che questo sia utile per qualcuno. Anche se gli snafu di codifica sembrano essere piuttosto comuni in MySQL, ho cercato ovunque e non sono riuscito a trovare una spiegazione per questo processo in definitiva piuttosto semplice.