2016-12-05 80 views
-1

我有富人2列名为“姓名”和“CITY_NAME”, 万一“CITY_NAME”是一个表的空更新/设置为“名称”的值相同。在MySQL中,我可以创建某种if语句并更新我想要的方式?更新空柱是其它式柱的相同值

+1

http://stackoverflow.com/help/how-to-ask您需要证明你的努力... –

+0

是的,你使用'WHERE'来实现你想要的。 'UPDATE ... SET CITY_NAME = name其中CITY_NAME = '';' – Qirel

+0

的@Qirel类。如果OP的列有NULL值,那么如果在那里有NULL值,则不认为'''是空的。 –

回答

1

你需要一个CASE陈述喜欢这里

update table1 
set city_name = case when city_name is null then name else city_name end; 

(OR)只使用一个WHERE条款

update table1 
set city_name = name 
where city_name is null; 
+0

我想你错过了where子句。 '如果“city_name”为空更新/设置为“name”的相同值'可以在city_name为空时仅保存一些IO。 – xQbert

+1

@xQbert,编辑有意义吗? – Rahul

+0

这将取决于什么是空的Pedro手段。如果''那么没有,如果为空则是。或者在你的Where子句中处理这两种情况,比如'Where coalesce(city_name,'')=''' – xQbert