mysql 只更新字段为空或null的,不为空的不更新

CREATE TABLE `user_copy1` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(10) DEFAULT NULL,
  `sex` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

sql语句
如果sex为0时,回本当做null替换,所以需要 【when sex= 0 thensex``】 来处理

update  `user`
set  
`name` = (
case
when   `name` = ''    then '王'
when   `name` is null   then  '王'
else 
`name`
end
)
,
`age` =
case
when   `age` = ''    then 20
when   `age` is null   then  20
else 
`age`
end
,
`sex` =
case
when   `sex` = 0     then `sex`    
when   `sex` = ''    then 2
when   `sex` is null   then  2
else 
`sex`
end
where id = 1

你可能感兴趣的:(mysql,mysql,数据库,sql)