SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.03.2011 12:41:14

avreg
Участник
Зарегистрирован: 18.02.2010
Сообщений: 7

удаление пробелов в конце строки

Привет.

Как можно удалить пробелы (в моём конкретном случае - завершающие).

update/replace T set F = rtrim(F)
- не отрабатывает (row affected 0)

update/replace T set F = replace(F,' ', '')
- работает, но число пробелов разное.

Если replace_func работал бы с regexp ( /\s+$/ ) было бы супер,
но он не умеет этого.

Есть другие решения?

Неактивен

 

#2 22.03.2011 14:23:49

avreg
Участник
Зарегистрирован: 18.02.2010
Сообщений: 7

Re: удаление пробелов в конце строки

дело было не пробелах, решил, кому интересно:
http://www.mysql.ru/webboard/index.html … amp;page=1

Неактивен

 

#3 25.03.2011 01:16:40

Tsvetkov
Участник
Зарегистрирован: 08.01.2011
Сообщений: 14

Re: удаление пробелов в конце строки

Ситуация оказалась несколько сложнее:
было: "123"
после
alter table t1 change f1 f1 char(больший размер) not null
стало: "123 \0\0\0....\0"
Почему так произошло - ума не приложу.

-- потыкаю пальцем в небо --
Думаю фишка в том, что символ "\0" (все биты в байте равны нулю) есть признак конца строки. Т.е. стока "123" выглядит
в памяти как "123\0". А т.к.  Вы запросили "not null" вот MySql залил строку до конца "\0".

ИМХО - Надо было делать в два захода.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson