1

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

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

4

3 回答 3

1

假设你有一个dateTIMESTAMP 列来存储他们执行操作的时间,试试这个:

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

享受和好运!

于 2012-07-23T15:17:42.837 回答
0

您可以将LIMIT <start>, <count>, 与 MySQL 一起使用:

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

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

于 2012-07-23T15:17:03.893 回答
0
SELECT * 
    FROM table_name 
    WHERE userID='$userid' 
    SORT BY date_column 
    LIMIT 3
于 2012-07-23T15:18:32.310 回答