在MySQL中,以下工作: 案例1:奇怪的行为
Select X , MAX(Y) from table
但在MS SQL Server中,你会得到 “它没有包含在聚合函数或GROUP BY条款。”
适当的方式将
Select X, MAX(Y) from table group by X
更糟糕的是,在MySQL中,您可以: 案例2:
Select X, Y, MAX(Z) from table group by X
我的问题是,MySQL如何确定在上述情况下在Y? 情况1中的X值如何?为什么MySQL允许这种奇怪的行为?
它并不决定它只是为Y返回一个随机值。对于这种畸变,Mysql在数据库提供程序中是唯一的。5.7 AFAIK http://dev.mysql.com/doc/refman/5.7/en/sql- mode.html#sqlmode_only_full_group_by将默认启用,结束此行为。 – Mihai
您希望退还X&Y的什么价值? – PaulF
@Mihai mysql在这方面并不是那么独特,sybase也有这个功能,在某些情况下,即使是teradata也支持它。 – Shadow