INSERT INTO … ON DUPLICATE KEY UPDATE …
表结构:
0 1 2 3 4 5 6 |
CREATE TABLE `mrdede_notfind` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `keyword` varchar(32) NOT NULL COMMENT '查询的关键词', `count` int(6) unsigned DEFAULT NULL COMMENT '计数:被查询的次数', PRIMARY KEY (`id`), UNIQUE KEY `keyword` (`keyword`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='保存没有查询到的搜索关键词' |
该语句是基于唯一索引或主键才可使用的,如下语句:
必要条件:其中字段id或keyword或count,至少有一个字段属性是主键或唯一索引。
0 |
INSERT INTO `mrdede_notfind` (id,keyword,count) VALUES (1,'织梦先生',3) ON DUPLICATE KEY UPDATE count=count+1; |
语句解释:如果查询主键id=1或者唯一索引keyword=’织梦先生’的记录存在,则更新此记录的count字段 count=count+1;如果没有查询主键id=1或者唯一索引keyword=’织梦先生’的记录都不存在,则插入一行记录。
其它:
假定id=1的记录存在,则下面语句与上面语句是等效的
0 |
UPDATE table SET count=count+1 WHERE id=1 OR keyword='织梦先生'; |