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

  • Автор темы vasily_rostov
  • Дата начала

vasily_rostov

Guest
Как убрать непечатуемые символы средствами MYSQL?

Здравствуйте!
Необходимо из поля удалить все пробелы, \r, \n и т.д.
Организовал каскад Replace-ов, однако обнаружил, что некоторые записи все равно содержат нечто похожее на пробел. Позже выяснил, что вродебы это был символ с ASCII = 255.
Replace(pole,char(255),"") - не помогло.
 

Саня

Guest
http://dev.mysql.com/doc/mysql/ru/String_functions.html TRIM.
Но, надо учитывать, что базу данных надо использовать для хранения информации, а не для её обработки. Так что, чтобы всё нормально работало, надо было бы реализоваться всё это средствами ПХП.
 

vasily_rostov

Guest
К сожалению, эта функция мне не подходит (при написании вопроса чутье подсказывало указать об известности её существовании). Насколько понял, она удаляет только пробелы(!) причем либо в начале, либо в конце, либо и и. Однако плохой символы попадаются внутри поля.
По поводу обработки, сейчас как раз использую ПХП, однако на глаз, MYSQL свои дданные обрабатывает быстрее.
 

fixxxer

К.О.
Партнер клуба
Правильное решение - обрабатывать данные ДО их занесения в базу.
 

vasily_rostov

Guest
Вобщем отвечаю сам, для того чтобы быстро убрать пробелы, ненужные точки, запятые у таблицы размером более 30000 записей, не нужно использовать PHP или другое - незачем, применяем встроеную функцию replace:
update tbl set field = replace(field," ","");

Однако, как убрать символы, имеющие заданый ASCII код, остается для меня загадкой.
 

vasily_rostov

Guest
В базу первоначально данные попадают из Excel'я.
 

Vasily_VS

Guest
Я должен заносить в базу номер без всяких "левых" символов. Так как при поиске - эти символы не будут набираться пользователем - следовательно запись не будет найдена.
 

Demiurg

Guest
Подожди, а как эти левые символы попали в ексель ?
 
Сверху