使用SQL REPLACE更新文本列

时间:2014-07-09 13:58:31

标签: mysql sql replace

我有1000个SQL行,其中包含数据类型为LONGTEXT的列。这些列中的每一列都包含列中某处的错误电话号码。我已尝试使用以下代码更新电话号码。

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

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

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

1 个答案:

答案 0 :(得分:5)

这就是你要找的东西:

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

根据documentation

  

REPLACE(STR,from_str均被,to_str)

     

返回带有all的字符串str   字符串from_str的出现被字符串to_str替换。

在您的查询中,您只需更换固定字符串' 514-921-2738'使用' 514-234-0315',然后将其分配给所有文本列值。