在 SQL 列中找到特定字符串后更新文本

Posted

技术标签:

【中文标题】在 SQL 列中找到特定字符串后更新文本【英文标题】:update text after finding a specific string in column SQL 【发布时间】:2017-06-12 12:25:02 【问题描述】:

我想在 PostgreSQL 数据库中的文本列类型中附加一个“文本”。 列中的文字是“您好,欢迎来到我的页面”。

我想在文本“Hello”之后附加一个文本作为“GuestName”;

结果输出应该是: “您好 GuestName 欢迎来到我的页面”。

谢谢 苏尼尔

【问题讨论】:

【参考方案1】:

Postgres 有overlay() 功能:

select overlay('Hello welcome to my page' placing 'GuestName' || ' ' from 7 for 0)

如果你想要做一些通用的东西,我会推荐replace()

select replace('Hello [GuestName] welcome to my page',
               '[GuestName]', 'GuestName')

设置这样的模板可以让您更灵活地构建字符串。

【讨论】:

【参考方案2】:

替换(字符串文本,从文本到文本)

UPDATE <table> SET <field> = replace(<field>, 'Hello ', 'Hello GuestName')

SELECT replace(<field>, 'Hello ', 'Hello GuestName') FROM <table>

【讨论】:

感谢 SAS,UPDATE SET = replace(, 'Hello ', 'Hello GuestName') 请接受/投票支持对您有帮助的解决方案。
【参考方案3】:
update your_table set column_name = replace(column_name,'Hello','Hello GuestName') 
where column_name = 'Hello welcome to my page';

【讨论】:

以上是关于在 SQL 列中找到特定字符串后更新文本的主要内容,如果未能解决你的问题,请参考以下文章

SQL WHILE(字符串操作)

SQL Server 触发器插入/更新特定列

在 spark sql--pyspark 中查找特定字符串

如何替换整个数据库中的字符串(数据值)?

SQL 查询以查找遵循特定模式的字符串

我想编写一个 sql (Oracle SQL) 查询来从特定字符之后的列中选择字符串的一部分