mysql按照某一字段去重,並顯示其他字段信息。有時候會有一些這樣的需求,就是按照sql中的某一列值去重,還要顯示其他字段的信息。用distinct進行去重時不能顯示整行的信息,對這種需求顯然難以滿足。
v准備工作
1.0 創建測試
CREATE TABLE `logtest` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `msg` varchar(500) NOT NULL, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; insert into `logtest` (msg) values('bbbbbbbbbbbbb'); select * from logtest;
1.1 表中所有數據
vGroup by和Max寫法
需求背景
按照時間升序在日志表中取出不msg不重復的前3條數據
select * from logtest where id in (select Max(id) from logtest group by msg) order by create_time asc limit 3;
作 者:請叫我頭頭哥
出 處:http://www.cnblogs.com/toutou/
關於作者:專注於基礎平台的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回復。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!