Как обнаружить и заменить непечатные символы из таблицы?
Я импортировал данные из файла xls в таблицу. но есть немного мусора (не ascii charactors).
Я хочу удалить эти непечатаемые символы из базы данных.
вот запрос, который я нашел, который может выбрать записи, которые не являются символами ascii
select * from TABLE where COLUMN regexp '[^ -~]';
Но как я могу удалить эти символы из таблицы, используя MySQL запрос или процедуру?
Пожалуйста, дайте предложения.
заранее спасибо.
2 ответа
Поскольку вопрос касается «обнаружения и замены», я бы не стал предлагать запрос на удаление из @TheWitness. Вместо этого я бы сделал что-то вроде этого:
UPDATE some_table SET some_column = REGEXP_REPLACE(some_column, '[^ -~]', '') WHERE some_column REGEXP '[^ -~]'
Приведенный выше запрос будет использовать регулярное выражение для поиска определенных символов, а REGEXP_REPLACE заменит их пустой строкой.
Подробнее о REGEXP_REPLACE
Это довольно просто, вы просто меняете свой SELECT на DELETE следующим образом
DELETE FROM TABLE WHERE COLUMN regexp '[^ -~]';