当前位置: 首页 > 图文教程 > 数据库 > MYSQL > mysql 记录不存在时插入 记录存在则更新的实现方法

MYSQL
V3host.be 比利时150M可绑米DA面板免费PHP空间
教程:MYSQL创建触发程序的方法
教程:MySQL中多表操作和批处理方法
关于MySQL中隐藏空间的问题
MySQL数据库在Linux下二进制日志恢复方法
分析与比较五种MySQL数据库可靠性方案
在Ubuntu下的MySQL数据库如何更改存储位置
MySQL插入表格查询的技巧
介绍MySQL用户root密码为空的另类攻击方法
MySQL数据库的23个安全注意事项
浅谈MySQL+PHP产生乱码的原理及解决方法
浅析MySQL中隐藏空间问题
使用Netbeans操作MySQL数据库的方法
lighttpd+PHP(FAST-CGI)++MySQL的具体步骤
浅谈MySQL数据库中如何解决分组统计的问题
MySQL与.NET应用解析
MySQL数据库中的安全解决方案
MyISAM-性能与特性的折中
MySQL数据库环境使用攻略
MYSQL没有完全卸载将导致其安装不成功

MYSQL 中的 mysql 记录不存在时插入 记录存在则更新的实现方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 103 ::
收藏到网摘: n/a

相信很多人都需要用到这个语句,请看下文:(在4.1以后的版本才有效)
复制代码 代码如下:

mysql> truncate `200702`;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from `200702`;
Empty set (0.01 sec)<span id="more-22"></span>
mysql> insert into `200702` (`domain`, `2nd_domain`, `tld`, `query_ns1`, `query_ns2`, `report_date`) values ('dnspod.com', 'dnspod', 'com', 1000, 2000, '2007-02-04') ON DUPLICATE KEY UPDATE `query_ns1` = `query_ns1` + 1000, `query_ns2` = `query_ns2` + 2000;
Query OK, 1 row affected (0.00 sec)
mysql> select * from `200702`;
+----+------------+------------+------+-----------+-----------+-----------+-----------+-------------+
| id | domain | 2nd_domain | tld | query_ns1 | query_ns2 | query_ns3 | query_ns4 | report_date |
+----+------------+------------+------+-----------+-----------+-----------+-----------+-------------+
| 1 | dnspod.com | dnspod | com | 1000 | 2000 | 0 | 0 | 2007-02-04 |
+----+------------+------------+------+-----------+-----------+-----------+-----------+-------------+
1 row in set (0.00 sec)
mysql> insert into `200702` (`domain`, `2nd_domain`, `tld`, `query_ns1`, `query_ns2`, `report_date`) values ('dnspod.com', 'dnspod', 'com', 1000, 2000, '2007-02-04') ON DUPLICATE KEY UPDATE `query_ns1` = `query_ns1` + 1000, `query_ns2` = `query_ns2` + 2000;
Query OK, 2 rows affected (0.01 sec)
mysql> select * from `200702`;
+----+------------+------------+------+-----------+-----------+-----------+-----------+-------------+
| id | domain | 2nd_domain | tld | query_ns1 | query_ns2 | query_ns3 | query_ns4 | report_date |
+----+------------+------------+------+-----------+-----------+-----------+-----------+-------------+
| 1 | dnspod.com | dnspod | com | 2000 | 4000 | 0 | 0 | 2007-02-04 |
+----+------------+------------+------+-----------+-----------+-----------+-----------+-------------+
1 row in set (0.01 sec)
mysql>
当然,建表的时候,千万别忘记了给domain做一个unique
UNIQUE KEY `domain` (`domain`,`report_date`)