mysql SELECT语句去除某个字段的重复信息_Mysql

SELECT语句,去除某个字段的重复信息,例如:
表名:table
id uid username message dateline
1 6  a    111    1284240714(时间戳)
2 6  a    222    1268840565
3 8  b    444    1266724527
4 9  c    555    1266723391
执行语句(去除username字段重复信息并按时间排序):
SELECT *
FROM table a INNER JOIN ( SELECT max( dateline ) AS dateline
FROM table GROUP BY uid ) b ON a.dateline = b.dateline
GROUP BY id ORDER BY a.dateline DESC
结果:
id uid username message dateline
1 6  a    111    1284240714(时间戳)
3 8  b    444    1266724527
4 9  c    555    1266723391
此语句用于显示最新记录信息,在一个区域内不允许某个信息(例如:用户)同时出现多次(一次以上)。
后记:效率问题
开始用了个这语句:
select * from table where dateline IN ( select max(dateline) from table GROUP BY uid ) ORDER BY dateline DESC
IN:当处理数据量比较大的时候,就没效率可言了,所以优化成内联,计算下快了6倍多。。。
继续条效率就加索引了~~

时间: 2024-09-23 10:17:58

mysql SELECT语句去除某个字段的重复信息_Mysql的相关文章

mysql数据库如何设置一个字段不重复,一个字段自增?

问题描述 mysql数据库如何设置一个字段不重复,一个字段自增? 如题. mysql数据库如何设置一个字段不重复,一个字段自增? 解决方案 CREATE TABLE t_user (Id int(11) NOT NULL AUTO_INCREMENT, -- 自增username varchar(18) NOT NULL unique, -- 唯一性约束password varchar(18) NOT NULL, PRIMARY KEY (Id) ) ENGINE=InnoDB AUTO_INC

《Scala机器学习》一一1.2 去除分类字段的重复值

1.2 去除分类字段的重复值 请准备好数据集和电脑.为了方便起见,本书已经提供了一些关于点击流(clickstream)数据的样本,它们是经过预处理过的,在https://github.com/alexvk/ml-in-scala.git上可以找到这些数据.chapter01/data/clickstream文件夹中包含了时间戳.会话编号(session ID),以及在调用时的一些额外事件信息(比如URL.类别信息等).首先要对数据集的各个列做一些变换,以此得到数据的分布情况. 图1-1给出了在

MySQL Select 语句检索记录使用详解

数据库最普遍的操作就是"插.查.删,改".在前在的日志中,我为大家介绍过MySQL的 insert 插入语句,也为大家介绍过 update 更新语句,以及删除语句 delete 和 truncate语句.今天就为大家来介绍一下,MySQL中唯一的检索数据语句:select语句. select 语句是SQL开发者最常用的语句,也是最强大的武器,幸运在的是,学习这个语句并不是很难. select 语句的定义: 一切都要遵循规矩来办事,所以和之前的教程一样,我们先来看一下手册上面说的 sel

MySQL SELECT语句使用技巧大全

普通查询(SELECT 语句用于从数据库中选取数据) SELECT FROM 语法用于从数据表中查询读取数据. 语法:  代码如下 复制代码 SELECT column1,column1,... FROM tb_name 如果要读取全部字段,可以使用 * 号代替字段名: SELECT * FROM tb_name 记录一些select的技巧: 1.select语句可以用回车分隔  代码如下 复制代码 $sql="select * from article where id=1" 和 $

mysql select语句操作实例_Mysql

Select的语法 复制代码 代码如下: SELECT     [ALL | DISTINCT | DISTINCTROW ]       [HIGH_PRIORITY]       [STRAIGHT_JOIN]       [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]       [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]     select_expr, ...    

mysql中合并两个字段的方法分享_Mysql

例如:select (a+b) as c from 表 类型也一致都是varchar型的,可就是显示不正确. 直到concat() MySQL中concat函数 下面通过一个例子介绍MySQL中的concat函数的使用方法,比如select concat('11','22','33'). MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则

Mysql select语句设置默认值的方法_Mysql

1.在没有设置默认值的情况下: 复制代码 代码如下: SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果: 设置显示默认值: 复制代码 代码如下: SELECT userinfo.id, user_name, role, adm_regionid, IFNUL

使用mysql的disctinct group by查询不重复记录_Mysql

有个需求,一直没有解决,在google上找了半天,给出的方案没有一个能用了,最后鬼使神差搞定了.  是这样的,假设一个表: id   f_id    value    1     2         a    2     2         b    3     5         c    4     9         c    5     9         a    6     6         d   id   f_id    value 1     2         a 2   

10个mysql中select语句的简单用法_Mysql

1.select语句可以用回车分隔 $sql="select * from article where id=1" 和 $sql="select * from article where id=1",都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时 2.批量查询数据 可以用in来实现 $sql="select * from article where id in(1,3,5)" 3.使用concat连接查询的结果 $