惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Blog — PlanetScale
Blog — PlanetScale
小众软件
小众软件
F
Fortinet All Blogs
博客园 - 叶小钗
博客园_首页
D
DataBreaches.Net
Apple Machine Learning Research
Apple Machine Learning Research
U
Unit 42
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家
M
MIT News - Artificial intelligence
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog

博客园 - 林石

[转].NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别 .NET工行E生活接入AES加密算法的吐槽-2018 [转]MYSQL性能查看(命中率,慢查询) 可遇不可求的Question之MySql4.0前版本不支持union与批量SQL提交 Cookie的几点忠告 可遇不可求的Question之MySqlClient的Guid 类型的映射篇 可遇不可求的Question之SQLSERVER触发器不支持多行插入操作篇 可遇不可求的Question之Sqlserver2005文件组的迁移篇 可遇不可求的Question之Mysql在不重启服务的情况下修改运行时变量篇 可遇不可求的Question之MySQL系统变量interactive_timeout 与 wait_timeout 篇 可遇不可求的Question之flash的socket连接安全策略文件篇 可遇不可求的Question之error: Failed dependencies: MySQLconflicts 错误篇 可遇不可求的Question之导入mysql中文乱码解决方法篇 Codesmith怎么判断sqlserver数据库字段是不是标识自增字段 可遇不可求的Question之skip-name-resolve模式篇 MySQL Error Codes MYSQL的错误代码 [转]如何成为强大的程序员? 可遇不可求的Question之Silverlight完美加密工具deepsea篇 可遇不可求的Question之反序列化时出现“base-64 字符数组的无效长度”错误提示篇
可遇不可求的Question之INSERT … ON DUPLICATE KEY UPDATE 语...
林石 · 2017-03-09 · via 博客园 - 林石

MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法,使得原本需要执行3条SQL语句(SELECT,INSERT,UPDATE),缩减为1条语句即可完成。

例如ipstats表结构如下:

CREATE TABLE ipstats (
ip varchar(15) not null unique,
clicks smallint(5) unsigned not null default '0'
);

原本需要执行3条SQL语句,如下:

IF (SELECT * FROM ipstats WHERE ip='192.168.0.1') {
    UPDATE ipstats SET clicks=clicks+1 WHERE ip='192.168.0.1';
} else {
    INSERT INTO ipstats (ip, clicks) VALUES ('192.168.0.1', 1);
}

而现在只需下面1条SQL语句即可完成:

INSERT INTO ipstats VALUES('192.168.0.1', 1) ON DUPLICATE KEY UPDATE clicks=clicks+1;

注意,要使用这条语句,前提条件是这个表必须有一个唯一索引或主键。