2016-09-28 2 views
2

у меня есть таблица article, которая содержит столбцы как title, author, headline, body, subheading, abstract, и некоторые другие. Я пытаюсь заменить все экземпляры конкретного символа во всех вышеупомянутых столбцах сразу (но не на других), но я должен сказать, что работа над SQL и базами данных не что-то, о чем я много знаю ...PostgreSQL - заменить все экземпляры определенного символа в столбцах таблицы

I Я нашел эту строку здесь, в stackoverflow, но после редактирования ее в то, что, как я думал, будет работать, я не вижу никакого эффекта. Я надеялся начать только с title колонки, чтобы увидеть результаты:

UPDATE article SET title = replace(title, '<U+2029>', ' '); 

Но это ничего не меняет.

Может кто-нибудь объяснить мне, что я делаю неправильно и что написать в PostgreSQL, чтобы получить то, что мне нужно?

+1

Возможный дубликат [postgresql - заменить все экземпляры строки в текстовом поле] (https://stackoverflow.com/questions/5060526/postgresql-replace-all-instances-of-a-string-within-text- поле) –

ответ

2

Если это юникод константы, то вы можете попробовать это:

UPDATE article 
    SET title = regexp_replace(title, U&'\2029', ' ', 'g'); 

Это предполагает, что 2029 является шестнадцатеричного представления символа.

+0

Ссылка: http://stackoverflow.com/questions/15190078/replace-unicode-characters-in-postgresql –

+0

Спасибо, вы только что спасли меня от редактирования вручную нескольких тысяч записей! Только одно: это должно быть: '... '', 'g');', не работало без апострофов вокруг g. – AZV

Смежные вопросы