我将尝试简要描述问题,即:我有一个页面,其中有大约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个日期评论的个人资料。有没有人有任何建议?想法?
列“谁”是用户个人资料的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年评论的个人资料?
答案 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'