mysql中无重复插入更新几种方法_关于mysql的无重复插入更新语法的讲解

今天给大家介绍下MySQL的更新语法,就是无重复插入数据更新语法,大家有听过么?一般的数据我们都希望在mysql中插入时可以直接筛选掉重复的数据,今天把这一技巧教给大家。

360f6fbcc438bec49cffd1afec776f41.png

如果不希望插入的数据是重复的,应该如何操作呢?下面将为您详细介绍MYSQL中无重复插入数据更新语法,供您参考,希望对您学习数据更新能有所帮助。

更新操作是使用数据库最常见的操作之一,下面将为您详细介绍MYSQL中无重复插入数据更新语法,供您参考,希望对您学习数据更新能有所帮助。

如果你指定了ONDUPLICATEKEYUPDATE命令语句,那么在唯一索引或者主索引的作用下将不插入与数据库记录重复的内容,但同时会更新数据库中的旧记录。例如,字段a被声明为唯一索引并且里面只包含有值为1的记录,以下两个语句会达到同样的效果:

c790f897c44c6407a4d3b34edc181354.png

受影响的是a=1的行,当插入时c的值加1。

如果字段b也是唯一的话,这个插入语句将和以下语句的效果一样:

UPDATEtableSETc=c+1WHEREa=1ORb=2LIMIT1;

如果a=1ORb=2匹配了不止一行,也只是第一行被更新。一般地,如果表中有多个唯一索引的话,你应该避免在使用用ONDUPLICATEKEY子句。

你可以在插入更新语句INSERT...UPDATE中使用VALUES(字段名)函数去关联某一行记录。也就是说,VALUES(字段名)可以用在UPDATE语句中去更新某字段的值而不会出现重复键。这个函数在多行插入中尤其有用。但是函数VALUES()仅当用在INSERT...UPDATE语句中才有意义,否则会返回NULL。例如:

8b8904a10d038d9503c9e19db11455a0.png

这个语句和下面两个是同效果的:

0247bc8191ece89980825aa0b0d1e2ac.png

如果表中包含有一个自动递增字段AUTO_INCREMENT,并用INSERT...UPDATE插入一行,函数LAST_INSERT_ID()会返回AUTO_INCREMENT的值,如果这个语句更新某一行,LAST_INSERT_ID()就没有意义了。但是,你可以通过用LAST_INSERT_ID(expr)使它变得有意义,假如id字段是自动递增栏的话,使LAST_INSERT_ID()对更新语句有意义的方法如下:

7c584bcff4667638e7ba0d79520c4959.png

如果你使用ONDUPLICATEKEYUPDATE语句的话,延迟执行选项DELAYED将被忽略。

以上就是我们所说的mysql的无重复的数据插入更新语法,大家可以在实际的运用中自己试着去试试看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值