IDが変更されない限り、IDは理論的には機能します...
「date」と呼ばれるテーブル構造のタイムスタンプフィールドを使用し、デフォルト値として「CURRENT_TIMESTAMP」を使用することをお勧めします。これにより、挿入時にレコードに日付/時刻が自動入力されます...
このフィールドで注文DESC、制限x
また、グループ化のおかげで間違ったデータが表示されるケースを何度も経験しました...ORDERBYとLIMITを適用する前にデータが正しいことを確認してください
user1からuser1に投稿を取得するために、グループ化する必要はありません:
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC LIMIT 3
*からuser1への投稿を取得する場合:
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC LIMIT 3
*からuser1への投稿を取得するには、一意のユーザーのみ:
SELECT * FROM posts
WHERE toID="USER1_ID"
GROUP BY FromID
ORDER BY date DESC LIMIT 3
グループ化が適用された後にORDERBYが結果に適用されるため、GROUPEDレコードがORDER BYで順序付けられないという問題が発生することがあります...回避策を実行するには:
SELECT * FROM (
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3
最近自分に投稿を送信した最後の3人のユーザーを取得するには:
SELECT * FROM (
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3