当前位置:   article > 正文

执行mysql语句修改没有修改_mysql一条语句执行有就修改没有就插入的操作

insert into 语句 有就修改没有就插入

Mysql: Insert or Update in One SQL Statement

Published on Oct 3, 2012 by Jamie Munro

0818b9ca8b590ca3270a3433284dd417.png 0818b9ca8b590ca3270a3433284dd417.png 0818b9ca8b590ca3270a3433284dd417.png 0818b9ca8b590ca3270a3433284dd417.png 0818b9ca8b590ca3270a3433284dd417.png

I must say, I really wish I knew about this technique years ago – before I started using frameworks to do a lot of my development.  The effort that was wasted in building separate code and separate logic to deal with inserts vs updates, when all of this time, there is a nice and simple feature built-in to Mysql that does this for us…

The process is quite straight forward, when I run a standard

INSERT

statement with Mysql, I can provide additional properties for dealing with

DUPLICATE KEY

, e.g. the record already exists.

Here is an example:

INSERT INTO `table` (`name`, `created`, `modified`)

VALUES ('Jamie', NOW(), NOW())

ON DUPLICATE KEY

UPDATE `name` = 'Jamie', `modified` = NOW()

Notice how in the

UPDATE

statement I'm only updating the name and modified date.

Another nice example can be used for keeping track of the number of times a tag is used.  Imagine you have a table with a list of tags and their associated count.  You can leverage the above functionality to increase the count each time the tag is used again:

INSERT INTO `tags` (`tag`, `count`, `created`, `modified`)

VALUES ('mysql', 1, NOW(), NOW())

ON DUPLICATE KEY

UPDATE `count` = `count` + 1, `modified` = NOW()

That's it!  No more need to right functionality like:

if ($id == 0) {

// do insert

} else {

// do update

}

For my information, visitMysql Documentation.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/230391
推荐阅读
相关标签
  

闽ICP备14008679号