2014-09-18 44 views
0

MySQL如何決定分組時使用哪一行的值?MySQL在做GROUP BY時自然會「選擇」哪一行?

id | type |  timestamp 
------------------------------- 
1 | 3 | 2014-09-10 17:03:43 
2 | 7 | 2014-09-10 17:15:00 
3 | 18 | 2014-09-10 17:17:55 
4 | 9 | 2014-09-10 18:01:30 
5 | 18 | 2014-09-10 18:02:29 
6 | 3 | 2014-09-10 18:06:26 
7 | 3 | 2014-09-10 18:06:30 

例如:

SELECT * FROM mytable GROUP BY type 

這具有這樣的時間戳而言意義。

它使用第一個,最後一個,通過內部工作確定的東西?

+1

這是你正在尋找的:[MySQL擴展到GROUP BY](http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html) – Pred 2014-09-18 16:18:17

+1

如果它有影響,不要讓mysql選擇。以您選擇的方式編寫您的查詢。 – 2014-09-18 16:20:32

+0

@DanBracuk我總是這樣做。我希望MySQL能夠不強迫我寫慢子查詢來做簡單的事情。 – BadHorsie 2014-09-18 16:24:27

回答

3

沒有聚合函數(MIN,MAX,SUM等)上的列不GROUP BY,MySQL將返回不確定 values.In其他數據庫,這是根本不準。

服務器可以自由選擇從每個組的值,所以,除非他們 相同,所選值indeterminate

但是您可以啓用ONLY FULL GROUP BY模式。

+0

這就是我的想法。笨。 – BadHorsie 2014-09-18 16:22:37