mysql 5.7 group by 排序错误 order by 和group by同时使用问题

467 阅读1分钟

mysql 5.5 升级到5.7 sql groupby 失效问题

原因

举例:在mysql 5.5中有一个查询语句为

SELECT * FROM ( 
	SELECT
  		`code`,
        `id`,
        `time`       
    FROM b_table
    ORDER BY time DESC 
) AS t
GROUP BY t.code

该语句在mysql 5.7中不知道为什么group by 并不取子查询的第一条语句,因为在5.7中这样写 order by并没有执行(虽然单独执行子查询语句可行)。

结果

我发现增加 limit 语句之后解决了该问题

SELECT * FROM ( 
	SELECT
  		`code`,
        `id`,
        `time`       
    FROM b_table
    ORDER BY time DESC 
     LIMIT 0,20
) AS t
GROUP BY t.code