文档章节

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

梦想岛
 梦想岛
发布于 2015/04/19 10:24
字数 201
阅读 93
收藏 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的时候,可能会出现翻到第二页...

猿码道
2018/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在查询数据时有两条数据既出现在第一......

小孑
2018/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
Lucene入门程序-Java API的简单使用

Lucene入门程序 准备环境 JDK: 1.8.0_162 IDE: Eclipse Neon.3 数据库: MySQL 5.7.20 Lucene: 4.10.4(已经很稳定了,高版本对部分分词器支持不好) 准备数据 创建工程 创建Maven Project(打包方...

马瘦风
2018/07/25
0
0
mysql 怎么实现随机查询并分页,不重复查询

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

solar.xie
2013/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Batch @SpringBatchTest 注解

Spring Batch 提供了一些非常有用的工具类(例如 JobLauncherTestUtils 和 JobRepositoryTestUtils)和测试执行监听器(StepScopeTestExecutionListener 和 JobScopeTestExecutionListener)......

honeymose
36分钟前
3
0
浏览器缓存

HTTP缓存类型 200 from cache:直接从本地缓存获取响应,可细分为from disk cache, from memory cache 304 Not Modified:协商缓存,本地未命中发送校验数据到服务端,如果服务端数据没有改变,则读...

关元
49分钟前
3
0
正则表达式简单使用说明

在Python3里确实简单明了,测试样例如下 # 正则content = 'Hello 1234567 World_This is a Regex Demo'# 贪婪匹配 尽可能多的匹配result = re.match('^He.*(\d+).*Demo$', co......

轻轻的往前走
51分钟前
3
0
多线程创建方式

一、基本概念 进程:就是正在运行的应用程序,进程是线程的集合。 线程:就是进程中的一条执行路径,一个独立的执行单元。 多线程:就是为了提高程序的效率,使用多线程,每个线程互不影响,...

秋至丶枫以落
55分钟前
3
0
聊聊flink的Async I/O

序 本文主要研究一下flink的Async I/O 实例 // This example implements the asynchronous request and callback with Futures that have the// interface of Java 8's futures (which is t......

go4it
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部