更新字符串中三个字符的 SQL 语句

标签 sql database postgresql stored-procedures database-migration

如何从名为“link”的列中的一行中取出一个字符串,并通过将三个字母添加到字符串中的特定索引位置来对其进行修改。

具体例子:

我想选择值 'http://www.hello.no' 并用 'http://www-x1UPDATE 它。 hello.no' 使用 SQL 语句。
假设“-x1”开始的索引位置始终为 10。

这需要使用 PostgreSQL 来完成。但是,如果您可以使用通用 SQL 语句捕获逻辑,那就太好了。 :)

最佳答案

Postgresql 有一个函数可以用称为 regexp_replace 的模式进行替换。您可以像这样使用该函数:

UPDATE my_table
SET link = regexp_replace(link, 'www', 'www-x1')
WHERE <...>

当然你也可以用直接的字符串操作来做到这一点:

UPDATE my_table
SET link = left(link, 10) || '-x1' || substring(link from 10)
WHERE <...>

关于更新字符串中三个字符的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20003653/

相关文章:

php - 一对多关系的 MySql JOIN 表结果

php - 优化缓慢的 MySQL 查询

sql - 如何循环主查询中的 cte

ruby-on-rails - 删除数据库表中的所有记录

sql - 创建 SQL Server 沙箱

postgresql - 无法将 Heroku PostgreSQL 转储导入本地数据库

sql - 快速获取过去 30 天的最低价格以及之前的最后价格

sql - nvarchar(max) 仍然被截断

mysql - SQL开始事务

c# - .NET:在数据库字段中允许 NULLS?