php - 为所选评论生成日期

标签 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"

Unfortunately, I have no idea how to get only those profiles with 3 last comments that have a date before 2017. Does anyone have any suggestions? Ideas?

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

“whom”列是用户个人资料的 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 年评论的个人资料?

最佳答案

wp_comment 使用 date( )。时间

  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'

关于php - 为所选评论生成日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44898657/

相关文章:

php - 如何连接真实服务器中的数据库

javascript - 更改图像预览并获取 img 标签的值

php - 设置 cakephp 的默认值

mysql - 为什么在 "to_date"表达式中将 "where"应用于已经是 "date"类型的变量?

php - Laravel 5.2 为每个用户提供单独的表

php - 如何编写我的 php 脚本以将多行插入数据库?

javascript - 如何使用 JavaScript 查找特定类?

php - 如何为莫里斯制作数组中的响应数据

mysql - 从嵌套子查询中选择多列

mysql - 如何执行此查询 : multiple distinct counts