mysql5.7.10和mysql5.5.39两个版本对于group by函数的处理差异


原理还是没有搞清楚,在官网上看了一下,看的不是很清楚。一并都记录一下。

问题描述:

存在如下数据结构

 

sql:

求用户最近更新的那条记录

思路:

按照modify_time排序后按照user_id分组。

sql如下:

              SELECT
				*
			FROM
				(
					SELECT
						id,
						doc_ass_modify_time,
						user_id
					FROM
						health_report_assessment hra
					
					ORDER BY
						doc_ass_modify_time DESC
				) reportTemp
			GROUP BY
				req_user_id

改sql在 mysql5.5.39 查询结果为:

 

修改后的sql

                     SELECT
				*
			FROM
				(
					SELECT
						DISTINCT id,
						doc_ass_modify_time,
						user_id
					FROM
						health_report_assessment hra
					
					ORDER BY
						doc_ass_modify_time DESC
				) reportTemp
			GROUP BY
				req_user_id                

子查询中增加了distinct的关键字。

在两个版本中,查询均取到最新的数据。

在官网查到的资料

 

大体了解他的意思,但也没有看出来和group by 有多大的关系。

http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

先记录一下,欢迎拍砖。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM