从同一表中的另一列更新列

时间:2019-03-04 13:02:42

标签: mysql sql sql-server-2008

我们需要更新表中的邮件地址,因为我们有一个新的域部分。本地部分保持不变

该表中的“名称”,“姓氏”和“邮件”列。 (以及其他不重要的列)。

我们希望它最终看起来像这样:

Name    Surname     Mail
Test    Name        Test.Name@newdomain.com
Test2   Name2       Test2.Name2@newdomain.com

但是在尝试这样做时,我们将其破坏了,现在邮件列仅显示了新域。我们使用了以下代码:

update table
set mail = Replace('olddomain.com','newdomain.com')
where mail LIKE '%olddomain.com'

因此,现在我们需要恢复mail列并添加新的domain-part。有帮助吗?

2 个答案:

答案 0 :(得分:2)

我很惊讶这项工作。通常,replace()接受三个参数:

set mail = Replace(mail, 'olddomain.com', 'newdomain.com')

我可能建议您在逻辑中也包含@

答案 1 :(得分:1)

replace()需要三个参数

update table
set mail = Replace(mail,'@olddomain.com','@newdomain.com')
where mail LIKE '%olddomain.com'