时间:2021-05-24
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倍多。。。
继续条效率就加索引了~~
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
mysql根据多个字段查找在mysql中,如果要实现根据某个字段排序的时候,可以使用下面的SQL语句SELECT*FROM'TABLE_NAME'ORDERBY
sql语句条件查询时,有时会判断某个字段是否为空。 字段内容为空有两种情况 1.为null 2.为字符串的空'' 语句如下: select*fro
批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码代码如下:UPDATEmytableSETmyfield='value'WHERE
mysql去重方法一:在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复