如何从更新查询中的Postgres数据库中的字段中删除所有空格?

时间:2013-12-04 13:23:41

标签: postgresql

用于在表上运行更新查询以从列中的值中删除所有空格的正确语法是什么?

我的表名为users,而fullname列中的某些值看起来像'Adam Noel'。我想删除空格,以便新值为'AdamNoel'

我喜欢30k行

7 个答案:

答案 0 :(得分:30)

update users
  set fullname = replace(fullname, ' ', '');
commit;

答案 1 :(得分:4)

要删除所有空格(不仅仅是空格字符),可以使用:

update users set fullname = regexp_replace(fullname, '\s', '', 'g');
commit;

答案 2 :(得分:3)

您可以包括一个条件,用替换条件仅更新需要此条件的值。

UPDATE users SET fullname = REPLACE(fullname, ' ', '') WHERE fullname ~* ' ';

又快又脏

答案 3 :(得分:1)

如果是text[]列,您可以执行以下操作:

UPDATE users SET pets = string_to_array(replace(array_to_string(pets, ';'), ' ', ''), ';');

之前:{"Big Dog", "Small Cat"}

之后:{"BigDog", "SmallCat"}

答案 4 :(得分:0)

只需使用简单的代码

 REPLACE('some_string', ' ', '')

Replace('some_string', '\s', '')

从字符串中删除任何空格

答案 5 :(得分:-1)

UPDATE customers SET first_name = TRIM (TRAILING FROM first_name ) where id = 1

例如,如果要从字符串开头删除空格,请使用以下语法:

TRIM(字符串的LEADING) TRIM()函数的以下语法从字符串的末尾删除所有空格。

TRIM(字符串中的TRILLING) 要删除字符串开头和结尾的所有空格,请使用以下语法:

TRIM(BOTH FROM字符串)

答案 6 :(得分:-1)

可以使用trim function全部执行更新。

UPDATE users AS u SET name = TRIM(u.name)

(可选)添加一个子句以仅更新需要它的记录,而不是所有记录,但使用更多的CPU。

UPDATE users AS u SET name = TRIM(u.name) WHERE LENGTH(TRIM(u.name)) <> LENGTH(u.name)

如果表在要修剪的值上具有唯一索引,则可能会出现重复的键错误。