服务器之家

服务器之家 > 正文

MySQL中实现插入或更新操作(类似Oracle的merge语句)

时间:2020-06-23 15:24     来源/作者:LifeLongLearner

如果需要在MySQL中实现记录不存在则insert,不存在则update操作。可以使用以下语句:

更新一个字段:

?
1
INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KEY UPDATE columnA=IF(columnB>0,1,columnA)

更新多个字段:

?
1
INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KEY UPDATE columnA=IF(columnB>0,1,columnA),columnB=IF(columnC>0,1,columnB),columnC=IF(columnA>0,1,columnC);

由于MySQL对更新为原相同值有进行优化,所以更新为原相同值时不会真正对字段进行更新操作,不存在性能问题。

以上所述是小编给大家介绍的在MySQL中实现插入或更新操作(类似Oraclemerge语句),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://www.cnblogs.com/2youngnot2learn/archive/2016/09/20/conditional-duplicate-key-updates-with-mysql.html

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
返回顶部