过去24小时内发布的大多数观看主题

时间:2014-10-28 09:40:06

标签: php mysql phpmyadmin

我想要追溯过去24小时内发布的前10个最受欢迎的主题。如果该网站在过去24小时内获得的主题少于10个,那么它必须从前一天中删除剩余的最常查看的主题。

我以unix格式将时间存储在数据库中,并且视图是整数。我想知道以上述方式获取的sql查询。

$time_start = time(U);
$time_end = strtotime('-1 day', $time_start);
$query = mysql_query("SELECT * FROM topics where topic_active = 'Yes' and topic_type = 'topic' and topic_time BETWEEN $time_start and $time_end ORDER BY topic_views DESC LIMIT 10");

topic_time是以unix格式存储在数据库中的主题发布时间,如1411657030

从上面的查询中我只能查看过去24小时内查看次数最多的内容,如果没有主题帖子,则会显示空白。从前一天获取主题的查询可以是什么。

2 个答案:

答案 0 :(得分:0)

使用这样的东西,请让我知道它有效

SELECT *, from_unixtime(topic_time / 1000, '%Y-%m-%d %H:%i') FROM topics
WHERE topic_time >= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 1 DAY) * 1000

请检查以下链接

selecting rows in the last 5 minutes using unix time stamp

答案 1 :(得分:0)

我觉得这样的事情会起作用......

SELECT *
     , 1 x 
  FROM topics 
 WHERE topic_active = 'Yes'
   AND topic_type = 'topic' 
   AND topic_created > UNIX_TIMESTAMP(NOW())-86400
 UNION 
SELECT *
     , 2
  FROM topics 
 WHERE topic_active = 'Yes'
   AND topic_type = 'topic' 
   AND topic_created > UNIX_TIMESTAMP(NOW())-172800
 ORDER 
    BY x
     , topic_views 
 LIMIT 10;