文档章节

msqyl 查询重复数据,保留N条记录。

梦想岛
 梦想岛
发布于 2015/04/19 10:24
字数 201
阅读 88
收藏 0

例如一个短信表的某个用户有多条短信记录,只查询两条记录。

短信表结构

CREATE TABLE `s_sms_list` (
  `sms_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '短信递增ID',
  `sms_phone` varchar(20) NOT NULL COMMENT '手机号码',
  `sms_content` varchar(255) NOT NULL COMMENT '短信内容',
  `sms_userid` int(11) NOT NULL COMMENT '接收者的用户u_id,对应user表的u_id',
  PRIMARY KEY (`sms_id`),
  KEY `all` (`sms_content`,`sms_userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


SELECT
  sms_id,
  sms_userid,
  sms_content
FROM
(
SELECT
  CASE 
    WHEN @cn != sms_userid THEN @rownum:= 1 
    ELSE @rownum:= @rownum + 1  
    END AS myNo,
  @cn := sms_userid AS sms_userid,
  sms_id,
  sms_content
FROM
  (SELECT @rownum:=0) r,
  (SELECT @cn:='') p,
  s_sms_list
ORDER BY
  sms_userid
) subQuery
WHERE
	myNo <3

重点在 myNo ,myNo<3 表示保留2条,类推 <4保留3条

查询结果:


实际上(32497的用户不止两条信息)


© 著作权归作者所有

共有 人打赏支持
梦想岛
粉丝 10
博文 11
码字总数 4464
作品 0
广州
程序员
加载中

评论(2)

梦想岛
梦想岛

引用来自“IncRediblE”的评论

有个问题,这里的两个变量是什么样子的?全局的?
哪两个? @cn和@rownum: 这两个是为了做递增的
IncRediblE
IncRediblE
有个问题,这里的两个变量是什么样子的?全局的?
☆MySQL order by limit 分页数据重复问题

0 问题描述 在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。但是,当limit遇到order by的时候,可能会出现翻到第二页...

猿码道
05/14
0
0
mysql 在orderby和limit混合使用时重复数据问题

# 问题背景 select * from table_1 order by field_1,field_2 limit 0,10;select * from table_1 order by field_1,field_2 limit 10,10; 这样两条分页sql在查询数据时有两条数据既出现在第一......

小孑
08/07
0
0
MySQL常用查询语句(23个)

一查询数值型数据: SELECT FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT FROM tbstu WHERE sname = '小刘' SELECT * FROM tbstu WHERE sname like ......

Ethan-GOGO
2015/06/08
0
0
mysql 怎么实现随机查询并分页,不重复查询

需求: 企业应用中,一般数据量不是很特别多,同时大多在局域网内,性能不会有问题,一般不会分页处理,随机排序数据一般不会有问题 web网站中,一般都用到分页处理,目前数据量比较少,考虑...

solar.xie
2013/05/15
0
0
查询并删除重复记录的SQL语句

查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from peoplewhere peopleId in (select peopleId from people group by peop...

Oscarfff
2016/03/09
41
0

没有更多内容

加载失败,请刷新页面

加载更多

python做文本内容指定区域字符串替换

需求: 因为公司项目需要做SEO优化,所以对项目中的各种长连接做优化,比如本文中提到的精简路径;之前已经批量吧文本的路径名字等做过修改,这里不再赘述;这里的问题是外部的路径修改了,文...

坦途abc
38分钟前
3
0
MySQL 关键字模糊匹配,并按照匹配度排序

MySQL 关键字模糊匹配,并按照匹配度排序。 方式一、按照关键字搜索,然后根据关键字所占比例排序 SELECTdrug_name,pinyinFROMtbl_drugWHEREpinyin LIKE '%AM%'ORDER BY...

yh32
48分钟前
3
0
虚拟机学习之一:java内存区域与内存溢出异常

1.运行时数据区域 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途和创建、销毁时间,有的区域伴随虚拟机进程的启动而存在,有些区...

贾峰uk
48分钟前
0
0
Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修...

架构师springboot
今天
1
0
分布式事务,原来可以这么玩?

多个数据要同时操作,如何保证数据的完整性,以及一致性? 答 : 事务 ,是常见的做法。 举个栗子: 用户下了一个订单,需要修改 余额表 , 订单 表 , 流水 表 ,于是会有类似的伪代码: st...

微笑向暖wx
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部