我有一個表或這樣的queryresult。MySQL查詢得到所有最高的ID
id name url
--- ---- ---
1 AAA http://aaa.com?r=123
2 AAA http://aaa.com?r=456
1 BBB http://bbb.com?r=xyz
2 BBB http://bbb.com?r=qsd
3 BBB http://bbb.com?r=fgh
4 BBB http://bbb.com?r=jkl
1 CCC http://ccc.com?r=a23
3 CCC http://ccc.com?r=bc6
我真正想要的是獲得所有唯一的名稱與最高的ID。所以基本上這個。
id name url
--- ---- ---
2 AAA http://aaa.com?r=456
4 BBB http://bbb.com?r=jkl
3 CCC http://ccc.com?r=bc6
什麼可以添加或更改爲查詢來獲得該結果。
所提出的解決方案不工作或返回錯誤的結果
OK最後我似乎已經找到了自己,這似乎工作:
SELECT id, name, url
FROM yourtable
WHERE concat(id, name) IN
(SELECT concat(max(id), name) FROM yourtable GROUP BY name)
id name url
--- ---- ---
2 AAA http://aaa.com?r=456
4 BBB http://bbb.com?r=jkl
3 CCC http://ccc.com?r=bc6
這會工作嗎?在SQL Server上它不會。 'GROUP BY'必須在'ORDER BY'之前。 – 2011-04-18 22:04:18
難道你不想'ORDER BY ID DESC'? – 2011-04-18 22:04:20
不,他想從1,2,3到4的最高到最低 – Vish 2011-04-18 22:08:19