mysql 连续查询数据库_MySQL查询连续数据

查询连续记录并对这些连续数据统计取出指定连续次数的记录,这类操作并不多,但出现时会比较棘手。

查询思想是:

顺序行号 - 减首差值 = 连续差块

顺序行号 如同 Oracle 中的 rownum 但MySQL目前还没有这个功能,所以只能通过局部变量来实现,

减首差值 就是每条记录与最开始记录的差(需要保证这个差值与顺序行号递增值相同,当然如果本来就是自增值则不需要单独计算)

只要 顺序行号与减首差值保持相同递增值则 连续差块 值相同,就可以统计出连续长度

示例表:(以简单的签到表为例)

create table user_sign(

id int unsigned primary key auto_increment,

user_id int unsigned not null comment '用户ID',

date date not null comment '签到日期',

created_time int unsigned not null comment '创建时间',

updated_time int unsigned not null comment '修改时间'

)engine=innodb default charset=utf8 comment '用户签到';

随机生成数据(创建函数随机生成签到数据)

create function insert_sign_data(num int)

returns int

begin

declare _num int default 0;

declare _date date;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值