找到第一个达到目标的用户

时间:2011-04-16 14:57:18

标签: php mysql sql

一个有趣的,我认为:) - 我的应用程序中的用户获得他们执行的操作的积分 我希望找到第一个达到100分的目标用户。

一种方法是返回所有已执行的操作及其日期和点数,并在PHP中运行它们以找到达到目标的第一个用户,但我想知道是否可以在SQL中执行此操作。

我知道如何将达到目标的所有用户返回到特定日期,但是有关如何找到第一个达到目标的人的想法?

提前谢谢,
道连

3 个答案:

答案 0 :(得分:1)

创建一个计算累积分数的查询。然后,您只需要最低日期,累积分数至少为100。

答案 1 :(得分:1)

您可以创建一个缓存表(此表中的数据完全是冗余的,因此可以根据需要将其丢弃并重新创建)

在此表中存储用户(id),为此用户余额添加积分的每个“事件”的日期,以及平衡度本身......就像每个用户的银行余额......

可以从存储的事件/操作中重新创建表,因为它是由用户分组的总和历史记录...或者可以使用每个新事件/操作更新...

答案 2 :(得分:0)

在MySQL表中创建一个列,即FIRST。

满足某个条件的第一个查询,比如points = 500,会将表中的'FIRST'值设置为1.每个其他查询都将FIRST设置为0.

示例:

ID | USER | POINTS | FIRST
1    dor    480       0
2    tim    500       1
3    mit    200       0


然后搜索FIRST = 1

$q = mysql_query("SELECT * FROM table WHERE FIRST='1'");