文档章节

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

梦想岛
 梦想岛
发布于 2015/04/19 10:24
字数 201
阅读 86
收藏 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
码字总数 4467
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Memcached启动参数详解

memcached -d -m 1024 -l 192.168.100.101 -p 11211 -P /tmp/memcached.pid -c 1024 -f 1.25 -n 80 -t 16 运行参数描述 -d:以守护(daemon)进程方式启动; -u:是运行Memcache的用户,例如 ......

月下狼
26分钟前
0
0
xgboost-kaggle

https://www.kaggle.com/dansbecker/xgboost This tutorial is part of the Learn Machine Learning series. In this step, you will learn how to build and optimize models with the powe......

tantexian
26分钟前
0
0
nginx学习八 代理服务

最常用的语法 proxy_pass Syntax: proxy_pass URL;Default: --Context:location.if in location,limit_exception 反向代理 例:/etc/nginx/conf.d/default.conf 反向代理(代理服务端)......

Romanceling
34分钟前
0
0
npm ERR! Unexpected end of JSON ...

npm install 报错: npm ERR! Unexpected end of JSON input while parsing near '..."^2.8.14"},"_hasShrin' npm ERR! A complete log of this run can be found in: ... 打开终端 命令: 第......

大_侠
38分钟前
0
0
Android中的设计模式之责任链模式

参考 《设计模式:可复用面向对象软件的基础 》5.1 Chain of responsibility 职责链 对象行为型模式 《Android源码设计模式解析与实战》第9章 使编程更有灵活性--责任链模式 意图 使多个对象...

newtrek
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部