mysql - 使用 SQL REPLACE 更新文本列

标签 mysql sql replace

我有 1000 个 SQL 行,其中包含数据类型为 LONGTEXT 的列。每列中的某处都包含不正确的电话号码。我已尝试使用下面的代码来更新电话号码。

UPDATE table 
SET text = replace('514-921-2738', '514-921-2738', '514-234-0315')

但是,它不是简单地将第一个电话号码 - 514-921-2738 替换为第二个电话号码 - 514-234-0315,而是将整个文本 block 替换为第二个电话号码。

换句话说,运行代码后剩下的就是电话号码。显然,我不完全理解如何使用 REPLACE 函数,但在查看在线文档后,我不明白我做错了什么。有什么想法吗?

最佳答案

这就是您要找的:

UPDATE table 
SET text = REPLACE(text, '514-921-2738', '514-234-0315');

根据documentation :

REPLACE(str,from_str,to_str)

Returns the string str with all occurrences of the string from_str replaced by the string to_str.

在查询中,您只需将固定字符串“514-921-2738”替换为“514-234-0315”,然后将其分配给所有文本列值即可。

关于mysql - 使用 SQL REPLACE 更新文本列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24655719/

相关文章:

sql - SQL中如何对多列求和

c# - 将 SQL 函数添加到 .NET Core SaveChanges 方法

excel - 为什么我得到一个不存在的文件名?

c++ - 将双单引号 (' ' ) 替换为单引号 (')

mysql - 如何在 UNION 查询中放置 order by

c# - 无法加载 ado.net MySQL

mysql - 按下一个最大数字排序

PHP 和 MySQL 选择单个值

regex - Perl:使用 s/(替换)并返回新字符串

mysql - 记录 mysql 更新