Как обнаружить и заменить непечатные символы из таблицы?

Я импортировал данные из файла 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 '[^ -~]';
Другие вопросы по тегам