我想要追溯过去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小时内查看次数最多的内容,如果没有主题帖子,则会显示空白。从前一天获取主题的查询可以是什么。
答案 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
请检查以下链接
答案 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;