0

我正在尝试计算本月用户的声誉,然后找到 4 个最接近的其他结果(2 个较低,2 个较高),所以要按顺序找到 5 个结果。例如某些用户的声誉是 4500 所以我应该得到最终结果: 2750, 3000, 4500 , 4650, 8900

这是我的查询(它只为特定用户选择他在当月的声誉):SELECT SUM(reputation_change) FROM activity WHERE user_id = '1' AND YEAR(datetime) = YEAR(CURDATE()) AND MONTH(datetime) = MONTH(CURDATE())

我的表如下: 在此处输入图像描述

所以问题是:如何让它表现公平?我不必重组表并仅为每个用户列添加reputation_this_month吗?

感谢您的所有建议。

4

1 回答 1

0

您可以每晚运行一个 MySQL 例程,根据上面的查询创建一个不同的表。当您从此表中选择时,您会看到更快的结果,并且您不会使用资源密集型查询对您的生产表征税

于 2013-10-06T11:35:29.193 回答