需求如下:
對錶中的數據進行分組,如果使用分頁查詢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
結果展示如下: