生成所选评论的日期

时间:2017-07-04 06:42:04

标签: php mysql

我将尝试简要描述问题,即:我有一个页面,其中有大约1000个配置文件。每个配置文件都有自己的注释,具有不同的日期。

我想要做的是编写一个代码,该代码将从每个配置文件3的最后评论中获取,但仅包括最后评论不晚于2016年的代码并添加它们+ 6个月,并跳过那些包含评论的配置文件2017。

我制作了示例代码以添加这6个月:

UPDATE `sktest`.`wp_comment`
SET `time` = DATE_ADD(`time`, INTERVAL 6 MONTH)
WHERE date(`wp_comment`.`time`) BETWEEN "2015-05-01" AND "2016-06-01"
  

不幸的是,我不知道如何只获得那些在2017年之前有3个日期评论的个人资料。有没有人有任何建议?想法?

评论我保留在wp_comment表中,如下所示: wp_comment table

列“谁”是用户个人资料的ID(在wp_users中)。

修改 好的,我做了这个,似乎工作。我从所有个人资料中得到3条最后评论:

$infor=$wpdb->get_results('SELECT a.*, count(*) as row_number FROM wp_comment a JOIN wp_comment b ON a.whom = b.whom AND a.id <= b.id GROUP BY a.whom, a.id ORDER BY a.time DESC');

    foreach ($infor as $info_resr) {        
        $id             = $info_resr->id;
        $active         = $info_resr->whom;
        $time       = $info_resr->time;
        $row_num        = $info_resr->row_number;
        }
       if ($row_num>3) {
           continue;
       }
        echo ''.$active.', '.$time.', '.$row_num.' <br>';   
    }

现在,我如何跳过那些已经有2017年评论的个人资料?

1 个答案:

答案 0 :(得分:3)

wp_comment使用date()。time

  UPDATE `sktest`.`wp_comment` 
  SET `time` = DATE_ADD(`time`, INTERVAL 6 MONTH) 
  WHERE date(`wp_comment`.`time`)  BETWEEN '2015-05-01' AND '2016-06-01'