gpt4 book ai didi

php - SQL查询-如何显示最近24小时内的点?

转载 作者:行者123 更新时间:2023-11-29 06:18:28 25 4
gpt4 key购买 nike

我正在构建一个带有积分系统的网站,类似于 Stackoverflow;

这是我用来显示顶级用户的代码(一直):

SELECT id, username, active, points 
FROM users
WHERE active='1'
ORDER BY points DESC

但是如何才能显示24小时内排名靠前的用户(也是积分)呢?

最佳答案

您必须制作一个特殊的表格来记录用户何时(以及多少)收到积分。

编辑

例如表 points

user_id   time         awarded_points
-------------------------------------
1 1298745681 10
...

然后您只需使用 WHERE time > UNIX_TIMESTAMP(CURDATE()) 查询今天或过去 24 小时内 WHERE time > UNIX_TIMESTAMP()-24*3600 获得的积分即可。

使用示例:

SELECT u.id, u.username, u.active, SUM(p.awarded_points) AS points
FROM points AS p
LEFT JOIN users AS u ON u.id = p.user_id
WHERE time > UNIX_TIMESTAMP(CURDATE())
AND u.active = '1'
GROUP BY p.user_id
ORDER BY points DESC

我还建议在查询中添加 LIMIT,特别是当您的网站变得很大时。

关于php - SQL查询-如何显示最近24小时内的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com