sql >> Databasteknik >  >> RDS >> Mysql

ersätt skräpkaraktärer i mysql

Jag listade ut det. Jag använde mysqls inbyggda hex funktion för att dumpa en post som jag visste var dålig.

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

Plockade sedan ut orden (dessa siffror placerade mellan "20"s) och upptäckte att min kränkande uppsättning bytes faktiskt var x'C3A2E282AC2671756F743B' . Hur detta motsvarar hur jag såg det kodat i PHP och av mitt system (som e2 80 ) Jag vet inte och vid det här laget bryr jag mig inte riktigt.

För att verifiera, innan du förstör data, kopplar du tillbaka den till mysql:

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

Så genom att använda ersätt-frågan som ovan kunde jag bli av med all dålig data på en gång.

För ordens skull var det:

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

Jag hoppas verkligen att detta är användbart för någon. Även om kodning av snafus verkar vara ganska vanligt i mysql, sökte jag överallt och jag kunde inte hitta en förklaring till denna i slutändan ganska enkla process.



  1. MADlib apt installera, hur?

  2. Som skiftlägeskänslig i MySQL

  3. Beställ beroende på 2 kolumnvärden

  4. Oracle &paginering