更新多个列中的特定值 - SQL

时间:2015-06-13 12:30:57

标签: sql ms-access select sql-update

我有一个包含两列的表,两列都有电子邮件值。 我想创建一个更新两列中特定数据的查询。

例如,如果我在一列中有两条电子邮件'a@aa.aa'的记录,而在另一列中有三条'a@aa.aa'的记录,我希望它们都更新。
例如,我希望所有'g@gg.ggg'都是'a@aa.aa'

enter image description here

我的问题是查询应该是什么样子。

2 个答案:

答案 0 :(得分:2)

最简单的方法是运行两个更新语句:

update table
    set col1 = <newval>
    where col1 = <oldval>;

update table
    set col2 = <newval>
    where col2 = <oldval>;

这就是为什么两个列存储相同数据的问题。也许您需要检查数据结构并使用联结表来获取此信息。

答案 1 :(得分:1)

如果你坚持一个陈述:

update table
     set col1 = iif(col1 = 'aa', 'bb', col1),
         col2 = iif(col2 = 'aa', 'bb', col2)
where col1 = 'aa' or col2 = 'aa'