PHP MYSQL插入/更新

Lee*_*Lee 5 php mysql

我有一个简单的表格如下.

CREATE TABLE `stats` (
  `id` int(11) NOT NULL auto_increment,
  `zones` varchar(100) default NULL,
  `date` date default NULL,
  `hits` int(100) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

因此,每个区域每天只需存储简单的点击计数器.

但我只想在同一天增加命中数值.

我已经尝试了MYSQL DUPLICATE KEY UPDATE但是这不会起作用,因为我可能在不同的日期有很多区域,所以我不能让它们独特或日期.

所以我能想到的唯一方法是首先查询是否存在日期,然后对插入/更新执行简单的if()

他们是一个更好的方式来完成这样的任务,因为每天可能会有很多1000次点击.

希望这是有道理的:-).

如果你能提出建议,谢谢.

Aym*_*ieh 7

(zone, date)在CREATE语句中将元组声明为唯一.这将使INSERT ... ON DUPLICATE UPDATE按预期工作:

CREATE TABLE `stats` (
  `id` int(11) NOT NULL auto_increment,
  `zone` varchar(100) default NULL,
  `date` date default NULL,
  `hits` int(100) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE (`zone`, `date`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

INSERT INTO stats (zone, date, hits) values ('zone1', 'date1', 1) ON DUPLICATE KEY UPDATE hits = hits + 1;
Run Code Online (Sandbox Code Playgroud)