我有 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/