我有一个包含两列的表,两列都有电子邮件值。 我想创建一个更新两列中特定数据的查询。
例如,如果我在一列中有两条电子邮件'a@aa.aa'
的记录,而在另一列中有三条'a@aa.aa'
的记录,我希望它们都更新。
例如,我希望所有'g@gg.ggg'
都是'a@aa.aa'
:
我的问题是查询应该是什么样子。
答案 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'