码迷,mamicode.com
首页 > 数据库 > 详细

SQL按照某一列数据去重并显示整行信息

时间:2020-01-28 17:19:02      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:auto   null   arch   innodb   mit   lock   ODB   sign   incr   

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;

SQL按照某一列数据去重并显示整行信息

标签:auto   null   arch   innodb   mit   lock   ODB   sign   incr   

原文地址:https://www.cnblogs.com/toutou/p/sql_distinct.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!