每人获得最大的成果

时间:2012-07-23 15:14:25

标签: mysql sql database

我有一个actions表,它有不同的条目。每个条目都包含userID - 执行该操作的用户的ID。

我怎样才能获得用户所做的前3个动作。我知道如何在多个查询或PHP中执行此操作,但我想在单个MySQL查询中执行此操作。这可能吗?

3 个答案:

答案 0 :(得分:1)

假设您有一个date TIMESTAMP列用于存储他们执行操作的时间,请尝试以下操作:

SELECT * FROM `user_actions` WHERE `userID` = X ORDER BY `date` DESC LIMIT 3

LIMIT 3表示从第一个开始检索最多3个值(检索第一个,第二个和第三个结果)。

参考http://dev.mysql.com/doc/refman/5.5/en/select.html

享受并祝你好运!

答案 1 :(得分:0)

你可以使用LIMIT <start>, <count>和MySQL:

SELECT * 
FROM  user_actions 
WHERE userID = <my id>
ORDER BY date DESC
LIMIT 0 , 3

这将返回第3行查询结果(从索引0开始,如指定的那样)

答案 2 :(得分:0)

SELECT * 
    FROM table_name 
    WHERE userID='$userid' 
    SORT BY date_column 
    LIMIT 3