From 6ef860f24f3cd7c29692f74b3a92df703ce87f04 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Mon, 7 Jul 2025 14:34:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20nas=E5=B8=AE=E5=8A=A9=E4=B8=AD=E5=BF=83u?= =?UTF-8?q?nion=E5=AD=90=E5=8F=A5=E5=9B=A0=E6=97=A0limit=E6=83=85=E5=86=B5?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/index/controller/TopsNas.php | 4 +++- app/mobile/controller/TopsNas.php | 4 +++- app/us/controller/TopsNas.php | 4 +++- app/usmobile/controller/TopsNas.php | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/index/controller/TopsNas.php b/app/index/controller/TopsNas.php index 447382c..02f8284 100755 --- a/app/index/controller/TopsNas.php +++ b/app/index/controller/TopsNas.php @@ -341,7 +341,7 @@ class TopsNas extends BaseController $model = \think\Db::table($sub_query . ' a'); foreach ($categorys as $key => $val) { if ($key == 0) continue; - $model->union(function($query) use($val, $limit) { + $model->union(function($query) use($key, $val, $limit) { $query->name('article')->field([ 'id', 'cid', @@ -355,6 +355,8 @@ class TopsNas extends BaseController if (!empty($limit)) { $query->limit($limit); } + // 嵌套子查询,解决union没有limit时排序问题 + $query->table($query->buildSql() . 'a' . $key); }); } diff --git a/app/mobile/controller/TopsNas.php b/app/mobile/controller/TopsNas.php index e8e15cb..4813d76 100755 --- a/app/mobile/controller/TopsNas.php +++ b/app/mobile/controller/TopsNas.php @@ -294,7 +294,7 @@ class TopsNas extends BaseController $model = \think\Db::table($sub_query . ' a'); foreach ($categorys as $key => $val) { if ($key == 0) continue; - $model->union(function($query) use($val, $limit) { + $model->union(function($query) use($key, $val, $limit) { $query->name('article')->field([ 'id', 'cid', @@ -308,6 +308,8 @@ class TopsNas extends BaseController if (!empty($limit)) { $query->limit($limit); } + // 嵌套子查询,解决union没有limit时排序问题 + $query->table($query->buildSql() . 'a' . $key); }); } diff --git a/app/us/controller/TopsNas.php b/app/us/controller/TopsNas.php index 0e0e8d5..b6420b7 100755 --- a/app/us/controller/TopsNas.php +++ b/app/us/controller/TopsNas.php @@ -123,7 +123,7 @@ class TopsNas extends BaseController $model = \think\Db::table($sub_query . ' a'); foreach ($categorys as $key => $val) { if ($key == 0) continue; - $model->union(function ($query) use ($val, $limit) { + $model->union(function ($query) use ($key, $val, $limit) { $query->name('article')->field([ 'id', 'cid', @@ -137,6 +137,8 @@ class TopsNas extends BaseController if (!empty($limit)) { $query->limit($limit); } + // 嵌套子查询,解决union没有limit时排序问题 + $query->table($query->buildSql() . 'a' . $key); }); } diff --git a/app/usmobile/controller/TopsNas.php b/app/usmobile/controller/TopsNas.php index 72cf3c0..99a77f0 100755 --- a/app/usmobile/controller/TopsNas.php +++ b/app/usmobile/controller/TopsNas.php @@ -184,7 +184,7 @@ class TopsNas extends BaseController $model = \think\Db::table($sub_query . ' a'); foreach ($categorys as $key => $val) { if ($key == 0) continue; - $model->union(function ($query) use ($val, $limit) { + $model->union(function ($query) use ($key, $val, $limit) { $query->name('article')->field([ 'id', 'cid', @@ -198,6 +198,8 @@ class TopsNas extends BaseController if (!empty($limit)) { $query->limit($limit); } + // 嵌套子查询,解决union没有limit时排序问题 + $query->table($query->buildSql() . 'a' . $key); }); }