我有一個actions
表具有不同的條目。每個條目都包含一個userID
- 執行該操作的用戶的ID。每個人獲得最大結果
我怎樣才能得到用戶所做的前3個動作。我知道如何在多個查詢或PHP中執行此操作,但我想在單個MySQL查詢中執行此操作。這可能嗎?
我有一個actions
表具有不同的條目。每個條目都包含一個userID
- 執行該操作的用戶的ID。每個人獲得最大結果
我怎樣才能得到用戶所做的前3個動作。我知道如何在多個查詢或PHP中執行此操作,但我想在單個MySQL查詢中執行此操作。這可能嗎?
您可以使用LIMIT <start>, <count>
,與MySQL:
SELECT *
FROM user_actions
WHERE userID = <my id>
ORDER BY date DESC
LIMIT 0 , 3
這將返回查詢結果的3個第一排(從索引0開始,按照規定)
假設你有一個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
享受和好運氣!
我在想什麼:) – 2012-07-23 15:18:10
SELECT *
FROM table_name
WHERE userID='$userid'
SORT BY date_column
LIMIT 3
是否每個動作都加了時間戳? – 2012-07-23 15:17:50
你想一次爲一個用戶或所有用戶做到這一點嗎? – 2012-07-23 15:19:18
我希望能夠立即爲所有用戶做到這一點!謝謝! – 2012-07-26 11:58:21