2013-04-11 159 views
1

我想選擇具有唯一「created_by」列的行,並選擇具有最小「距離」的行。這裏是我的表中的數據:如何選擇整行從列中選擇最小值或最大值 - MySql

id title   created_by last_used   distance 
668 Lorem Ipsum 1 981   2012-00-00 00:00:00  12 
2 Lorem Ipsum 2 981   2012-00-00 00:00:00  20 
710 Lorem Ipsum 3 120   2013-01-01 00:00:00  1 
769 Lorem Ipsum 4 981   2012-00-00 00:00:00  4 

所以,我想獲得以下行:

id title   created_by last_used   distance 
710 Lorem Ipsum 3 120   2013-01-01 00:00:00  1 
769 Lorem Ipsum 4 981   2012-00-00 00:00:00  4 

我如何使用SELECT語句實現這一目標?

+0

那麼,[?你嘗試過什麼(http://www.whathaveyoutried.com) – 2013-04-11 16:32:54

+0

你打算如何處理兩行距離最短的行? – mellamokb 2013-04-11 16:33:40

+0

這類問題很常見。看例如:[1](http://stackoverflow.com/questions/1799355),[2](http://stackoverflow.com/questions/11683712),[3](http://stackoverflow.com/問題/ 8677307),[4](http://stackoverflow.com/questions/12378193),[5](http://stackoverflow.com/questions/10700892) – mellamokb 2013-04-11 16:35:00

回答

0

我能得到的結果,而與此查詢犧牲性能(避免連接):

SELECT id, title, created_by, last_used, MIN(distance) 
FROM MyTable GROUP BY created_by; 
+0

只要你不介意'id','title'和'last_used'的值不一定來自與'MIN(距離)'相同的行......這就是爲什麼連接是必要的。 – mellamokb 2013-04-12 13:36:01