2017-03-24 51 views
1

我有來自用戶標識1(5),2(1),3(1)的消息。 (括號顯示消息數量爲每個用戶ID)獲取每列的一行

你好,這裏是我的代碼:

$stmt = $dbh->prepare("SELECT * FROM messages WHERE user_id = :user_id ORDER BY id DESC"); 

我有消息的用戶ID 123。但對於具有多個消息(如用戶標識1)的用戶,我只想從用戶標識1中選擇最新消息,而不是全部五個消息,並且我想從用戶標識23中選擇最新消息。我怎樣才能做到這一點?謝謝。

+0

我想,如果我沒有弄錯,你仍然想要同時選擇所有用戶,並且只保留每個用戶的最後一條消息。是這樣嗎?在這種情況下,你的答案已經在這個問題:http://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-group – Zeke

回答

1

我相信,將「限制1」添加到您的查詢中會起到訣竅的作用。

$stmt = $dbh->prepare("SELECT * FROM messages WHERE user_id = :user_id ORDER BY id DESC LIMIT 1"); 
+0

不,只選擇一行,無論通常它 – baileyJchoi

+0

它你所描述的 –

+0

不是你要求的嗎? – marmeladze