mysql SELECT语句去除某个字段的重复信息
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倍多。。。
继续条效率就加索引了~~相关阅读:
在ASP中调用存储过程的几种方法
php中global和$GLOBALS[]的分析之一
教你只用一个Validator对多个控件进行验证
使用Windows7用户不可错过的77条小知识
拖动布局之保存布局页面cookies篇
ajax 技术和原理分析
Discuz数据库结构参考 方便二次开发
Windows7使用Aero样式怀念经典开始菜单
帝国下载系统 V2.5 增加FCKeditor编辑器的方法
JS面向对象编程 for Cookie
教你美化ubuntu系统
用CSS设计高用户体验的web文字大小
探讨 Windows 2000 无人参与安装
修改z-blog分页页码样式