在mysql中,要找到最新的記錄,我們通常會(huì)使用ORDER BY和LIMIT來排序和限制查詢結(jié)果。但是如果需要以某個(gè)字段分組,并在每個(gè)組中找到最新的記錄,就需要使用一些增強(qiáng)的語法。
SELECT * FROM ( SELECT * FROM your_table ORDER BY date_field DESC ) AS t1 GROUP BY group_field
在這個(gè)查詢語句中,我們將原始查詢結(jié)果按照日期字段(假設(shè)為date_field)降序排列,然后將結(jié)果作為子查詢,并按照所需的分組字段(假設(shè)為group_field)進(jìn)行分組。由于子查詢已經(jīng)按照日期字段排過序,所以每個(gè)分組中的第一條記錄就是最新的記錄。
需要注意的是,由于mysql的GROUP BY語法需要對(duì)分組字段進(jìn)行聚合操作,該查詢語句需要在分組操作前進(jìn)行排序。如果不進(jìn)行排序,mysql會(huì)隨機(jī)選擇分組中的一條記錄作為結(jié)果,而不一定是最新的記錄。