MYSQL 全表按照Key字段更新指定的字段

Mysql更新字段可以有update、insert into、replace into几种方法,其中:

1、update只能对单条记录或者相同条件的多列批量单一更新;如果要全表按照Key更新,需先查询表中记录,根据条件逐条更新,效率非常低;

2、insert是将新行插入到表中,普通的insert into可以批量查询新行,如下用法可以按照表中的key全表更新指定的字段,格式如下:


INSERT INTO table_name [column_name1, column_name2,...] VALUES(column_value1,column_value2,...), (column_value1,column_value2,,...)ON DUPLICATE KEY UPDATE userName=VALUES(userName)  
使用这种方法必须满足条件:column_name1, column_name2,...中必须有主键或者唯一键,userName是要更新的列。

如果想一次更新多列,可以在userName=VALUES(userName)后面继续添加,例如:
INSERT INTO table_name [column_name1, column_name2,...] VALUES(column_value1,column_value2,...), (column_value1,column_value2,,...)ON DUPLICATE KEY UPDATE userName=VALUES(userName) , userID = VALUES(userID)  

这样就可以同时更新userName和userID两个字段。


3、replace into会自动根据表中的key更新字段,但更新的过程是,先检查更新的key在表中是否存在,如果存在则删除改行,重新insert;这种逻辑,如果只更新几个字段,其它字段会根据建表语句变成默认值,如果没被更新的字段为非空且没有默认值,replace into将会失败;

所以replace into只适合全表更新的场景。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值