需求如下:
对表中的数据进行分组,如果使用分页查询limit进行数据限制,在并发的情况下效果不理想,且在索引不满足的情况下查询较慢,以下就利用的mysql的定义变量对数据进行分组,再根据分组结果拉取数据:
select groId as groupId, min(id) as minId, max(id) as maxId
from
(
select floor((rowId-1)/3) groId, id
from
(
select @rowid:=@rowid+1 as rowId, id
from table_name, (select @rowid:=0) as init
where batch_no = 'aaa'
order by id asc
) A
) B group by groId
结果展示如下: