Mysql
 sql >> Baza danych >  >> RDS >> Mysql

zamień znaki śmieci w mysql

Rozgryzłem to. Użyłem wbudowanego w mysql hex funkcja zrzucenia wpisu, o którym wiedziałem, że jest zły.

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

Następnie wybrałem słowa (te liczby wciśnięte między „20”) i odkryłem, że mój obraźliwy zestaw bajtów to w rzeczywistości x'C3A2E282AC2671756F743B' . Odpowiada to sposobowi, w jaki widziałem to zakodowane w PHP i przez mój system (jako e2 80 ) Nie wiem iw tym momencie nie obchodzi mnie to.

Aby zweryfikować, przed zniszczeniem danych, podłącz je z powrotem do mysql:

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

Tak więc, używając zapytania replace jak powyżej, udało mi się jednocześnie pozbyć wszystkich błędnych danych.

Dla przypomnienia było to:

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

Naprawdę mam nadzieję, że komuś się to przyda. Chociaż kodowanie snafus wydaje się być dość powszechne w mysql, szukałem wszędzie i nie mogłem znaleźć wyjaśnienia tego ostatecznie dość prostego procesu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić, czy „Serwer MySQL zniknął”

  2. Jak mogę wstawić dane NULL do bazy danych MySQL za pomocą Pythona?

  3. Jak utworzyć pulę połączeń MySQL podczas pracy z NodeJS i Express?

  4. W jaki sposób Left Join / IS NULL eliminuje rekordy, które znajdują się w jednej tabeli, a nie w drugiej?

  5. Zasoby klastra Galera