group by 与 order by 同时使用后者不生效
首先查看版本(出问题的是5.7)
这里MySQL的版本是
有一张表
我想查询出每一个人最近的一次成绩
首先就是会想到分组
SELECT * FROM
`student`
GROUP BY
NAME;
但是这里很明显只是时间最早的分组了
然后进行改进
SELECT
*
FROM
`student`
GROUP BY
NAME
ORDER BY
create_date
DESC
发现还是没有生效
查询资料有人说必须是group by的字段也要在order by 中出现,结果还是不行
于是我想使用子查询进行获取,先进行降序排列,再group by
SELECT
*
FROM
(
SELECT
*
FROM
`student`
ORDER BY
create_date DESC
) t
GROUP BY
t. NAME
发现成功了
但是在mysql版本比较靠后的时候(出问题的测试的是5.7)还是不行,网上查询有人说是加上limit
SELECT
*
FROM
(
SELECT
*
FROM
`student`
ORDER BY
create_date DESC
limit 10000000000
) t
GROUP BY
t. NAME
所以不行的小伙伴试试在后面加上limit ,至于为什么后面跟的数据那么大,这是因为当要分组的数量超过这个数量是会出错的