2012-08-22 106 views
0

我現在有這個MYSQL ORDER BY和集團通過

SELECT type, extra_id, COUNT(*) AS count, id 
FROM `notifications` 
WHERE `receiver_id` = '".$this->user_id."' 
    AND `read` = '0' 
GROUP BY type, extra_id 
ORDER BY `id` DESC 

但是,這隻能通過在數據庫中找到的第一個結果是訂單,這就是拍攝的時候我選擇ID。我怎麼能這樣做,所以它需要從notifications最後找到的ID用於選擇編號

+5

我不明白 – Peter

+0

我們可以看到一些模式?另外,你不應該''選擇'你沒有聚合的任何列('id')。 – Kermit

+0

@PeterSzymkowski:問題是他在分組查詢。每行有多個'id's,但只能顯示一個。 MySQL在這種情況下顯示第一個值。 –

回答

3

只要選擇的MAX(id)代替id

SELECT type, extra_id, COUNT(*) AS count, MAX(id) AS max_id 
FROM `notifications` 
WHERE `receiver_id` = '".$this->user_id."' 
    AND `read` = '0' 
GROUP BY type, extra_id 
ORDER BY max_id DESC 
+0

完美的作品。謝謝。 – user1527354