Как удалить шестнадцатеричные символы из БД? - PullRequest
2 голосов
/ 05 июля 2010

У меня есть MySQL DB, где в строках есть символы, такие как% 20,% 2C и т. Д. ... как я могу удалить их из БД без редактирования файла в блокноте?Размер файла .sql составляет около 300 МБ ... спасибо

1 Ответ

1 голос
/ 06 июля 2010

Какая база данных?

Хотите заменить коды на их правильные символы;как% 20 с '' (пробел)?

Вам может понадобиться посмотреть, как именно ваш текст экранируется, но вы можете наивно делать что-то, используя встроенные строковые функции:

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_replace

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_unhex

UPDATE tbl
SET col = REPLACE(col, '%20', UNHEX('20'))
WHERE col LIKE '%\%20%';

Кроме того, я бы принял меры для обеспечения того, чтобы данные такого типа не попадали в базу данных при любом используемом механизме вставки / импорта.

...