actions
異なるエントリを持つテーブルがあります。各エントリにはuserID
- そのアクションを行ったユーザーの ID が含まれます。
ユーザーが行った最初の 3 つのアクションのみを取得するにはどうすればよいでしょうか。これを複数のクエリまたは PHP で実行する方法は知っていますが、単一の MySQL クエリで実行したいと考えています。これは可能ですか?
date
アクションを実行した時刻を格納するための TIMESTAMP 列があると仮定して、これを試してください。
SELECT * FROM `user_actions` WHERE `userID` = X ORDER BY `date` DESC LIMIT 3
LIMIT 3
1 番目から開始して、最大 3 つの値を取得することを示します (1 番目、2 番目、3 番目の結果を取得します)。
参考:http ://dev.mysql.com/doc/refman/5.5/en/select.html
楽しんで頑張ってください!
SELECT *
FROM table_name
WHERE userID='$userid'
SORT BY date_column
LIMIT 3
LIMIT <start>, <count>
を MySQL で使用できます。
SELECT *
FROM user_actions
WHERE userID = <my id>
ORDER BY date DESC
LIMIT 0 , 3
これにより、クエリ結果の最初の 3 行が返されます (指定されたインデックス 0 から始まります)。