1

actions異なるエントリを持つテーブルがあります。各エントリにはuserID- そのアクションを行ったユーザーの ID が含まれます。

ユーザーが行った最初の 3 つのアクションのみを取得するにはどうすればよいでしょうか。これを複数のクエリまたは PHP で実行する方法は知っていますが、単一の MySQL クエリで実行したいと考えています。これは可能ですか?

4

3 に答える 3

1

dateアクションを実行した時刻を格納するための TIMESTAMP 列があると仮定して、これを試してください。

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

LIMIT 31 番目から開始して、最大 3 つの値を取得することを示します (1 番目、2 番目、3 番目の結果を取得します)。

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

楽しんで頑張ってください!

于 2012-07-23T15:17:42.837 に答える
0
SELECT * 
    FROM table_name 
    WHERE userID='$userid' 
    SORT BY date_column 
    LIMIT 3
于 2012-07-23T15:18:32.310 に答える
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 に答える