【发布时间】:2025-11-25 05:25:01
【问题描述】:
在 PostgreSQL 中,一列包含以下值:
"Sample1"
"Sample2"
有没有一种有效的方法可以删除" " 标记的每条记录?
这似乎是一个相对简单的操作,但我很困惑。
【问题讨论】:
标签: sql database postgresql pattern-matching
在 PostgreSQL 中,一列包含以下值:
"Sample1"
"Sample2"
有没有一种有效的方法可以删除" " 标记的每条记录?
这似乎是一个相对简单的操作,但我很困惑。
【问题讨论】:
标签: sql database postgresql pattern-matching
试试这个:
UPDATE TableName
SET ColName = REPLACE(ColName, '"', '');
WHERE ColName SIMILAR TO '%"%'
您也可以使用LIKE 运算符来代替SIMILAR TO。
【讨论】:
trim(colname, '"')
既然你要求efficient way:
UPDATE tbl
SET col = translate(col, '"', '')
WHERE col LIKE '%"%';
Never use SIMILAR TO, its an utterly pointless operator,仅包含在 Postgres 中以符合标准。希望该标准将来会包含正则表达式匹配(如 Postgres 中的 ~)。
对于替换单个字符,translate() 比replace() 更简单、更快捷。
如果您只想替换前导和/或尾随字符,请改用trim() / ltrim() / rtrim()。也分别改成WHERE col LIKE '"%' OR col LIKE '%"'。
【讨论】: