成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

基于mysql實(shí)現(xiàn)group by取各分組最新一條數(shù)據(jù)

瀏覽:29日期:2023-10-11 12:44:52

前言:

group by函數(shù)后取到的是分組中的第一條數(shù)據(jù),但是我們有時(shí)候需要取出各分組的最新一條,該怎么實(shí)現(xiàn)呢?

本文提供兩種實(shí)現(xiàn)方式。

一、準(zhǔn)備數(shù)據(jù)

http://note.youdao.com/noteshare?id=dba748092a619be0a8f160ccf6e25a5f&sub=FD4C1C7823CA440DB360FEA3B4A905CD

基于mysql實(shí)現(xiàn)group by取各分組最新一條數(shù)據(jù)

二、三種實(shí)現(xiàn)方式

1)先order by之后再分組:

SELECT * FROM (SELECT * from tb_dept ORDER BY id descLIMIT 10000) a GROUP BY parent_id;

基于mysql實(shí)現(xiàn)group by取各分組最新一條數(shù)據(jù)

不加LIMIT可能會(huì)無效,由于mysql的版本問題。但是總覺得這種寫法不太正經(jīng),因?yàn)槿绻麛?shù)據(jù)量大于Limit 的值后,結(jié)果就不準(zhǔn)確了。所以就有了第二種寫法。

2)利用max() 函數(shù):

SELECT * FROM tb_dept td,(SELECT max(id) id FROM tb_dept GROUP BY parent_id) md where td.id = md.id;

基于mysql實(shí)現(xiàn)group by取各分組最新一條數(shù)據(jù)

3)利用 where 字段名稱 in (...) 函數(shù):

SELECT * FROM tb_dept WHERE id IN (SELECT MAX(id) FROM tb_dept GROUP BY parent_id);

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章: