我如何使用php代码`DELETE`在当天只保存一个,在当天保存不超过一个?

时间:2018-08-19 10:45:12

标签: php database sql-delete

我为我的网站保存统计信息时遇到问题,我的统计信息一天不只保存一次,我尝试编写php代码以删除当天的其他信息,并只保留其中一个 Here is photo of my database saved

如果您看到日期2018-08-13被保存了3次,其中有些被保存了一天,一次或两次或多次,

真正的问题:我如何使用php代码DELETE在当天只保留一个

时间已保存在数据库time();

照片输出为date('Y-m-d H:i',$getstats['time']);

(如果需要,您可以进行编辑以使其更加清晰易懂)

1 个答案:

答案 0 :(得分:0)

A。直接回答您的问题

  1. 我假设您正在使用MySQL
  2. 我假设您的表名是console.log({{ myteam|safe }});

步骤1:将主键列+约束添加到表中

stats

第2步:创建过程如下

ALTER TABLE `stats`
ADD COLUMN `id` INT(11) NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (`id`);

第3步:执行过程

BEGIN
    DECLARE idToRemove INT;
    WHILE exists(select count(*) from stats group by date(time) having count(*) > 1) DO
        select min(id) into idToRemove from stats group by date(time) having count(*) > 1 limit 1;
        delete from stats where id = idToRemove;
    END WHILE;
END

B。注意事项

  1. 主键应保留
  2. 为什么还要创建重复项?如何在call removeDuplicates() 列上添加UNIQUE约束并在代码中使用time语句?