From 820ce740ce26e5865d5bcbbf6fc8744678944d48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E5=A2=A8=E6=9F=93=E5=B0=BD=E9=9D=92=E8=A1=A3?= =?UTF-8?q?=E9=A2=9C?= <378809360@qq.com> Date: Mon, 13 Aug 2018 10:29:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EChunk=E7=BB=84=E5=9D=97?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E9=9B=86=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/database/gdb/gdb_model.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/g/database/gdb/gdb_model.go b/g/database/gdb/gdb_model.go index d2f145787..39615f922 100644 --- a/g/database/gdb/gdb_model.go +++ b/g/database/gdb/gdb_model.go @@ -409,3 +409,31 @@ func (md *Model) getFormattedSql() string { } return s } + +// 组块结果集 +// @author ymrjqyy +// @author 2018-08-13 +func (md *Model) Chunk(limit int, callback func(result Result, err error)) { + var step = 0 + var start = md.start + for { + md.limit = limit + md.start = start + step*limit + // 查询当前组块的数据 + sqls := md.getFormattedSql() + data, err := md.getAll(sqls, md.whereArgs...) + if err != nil { + callback(nil, err) + break + } + if len(data) == 0 { + break + } + // 回调 + callback(data, nil) + if len(data) < limit { + break + } + step++ + } +}