2012-07-23 53 views
1

我有一個actions表具有不同的條目。每個條目都包含一個userID - 執行該操作的用戶的ID。每個人獲得最大結果

我怎樣才能得到用戶所做的前3個動作。我知道如何在多個查詢或PHP中執行此操作,但我想在單個MySQL查詢中執行此操作。這可能嗎?

+0

是否每個動作都加了時間戳? – 2012-07-23 15:17:50

+2

你想一次爲一個用戶或所有用戶做到這一點嗎? – 2012-07-23 15:19:18

+0

我希望能夠立即爲所有用戶做到這一點!謝謝! – 2012-07-26 11:58:21

回答

0

您可以使用LIMIT <start>, <count>,與MySQL:

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

這將返回查詢結果的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

我在想什麼:) – 2012-07-23 15:18:10

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