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 ,至於爲什麼後面跟的數據那麼大,這是因爲當要分組的數量超過這個數量是會出錯的