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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值