[英]select from subquery with union and paginate in laravel
我有一個MySql腳本,當在PHP本機中運行時,可以很好地運行。
SELECT * FROM (
(SELECT * FROM news WHERE ctg = 'Promotion' and active = '1' ORDER BY id)
UNION ALL
(SELECT * FROM news WHERE ctg ='Info' ORDER BY id)
) AS hasil
ORDER BY id DESC
目前,我正在學習如何以雄辯的方式進行操作。 這是腳本:
$promo = DB::select("SELECT * FROM (
(SELECT * FROM news WHERE ctg = 'Promotion' and active = '1' ORDER BY id)
UNION ALL
(SELECT * FROM news WHERE ctg ='Info' ORDER BY id)
) AS hasil
ORDER BY id DESC ");
return view('news', ['promo' => $promo]);
除非無法自動解析分頁,否則上面的腳本也可以完美地工作。
所以我應該怎么做才能得到正確的結果,它也可以解析分頁?
我不知道您為什么在這種情況下使用Union
,結果似乎與OR
條件相同,請嘗試使用News
模型
$promo = News::where(function($query){
$query->where('ctg', '=', 'Promotion')
->where('active', '=', '1');
})
->orWhere('ctg', '=', 'info')
->orderBy('id', 'DESC')
->paginate(10);
return view('news', ['promo' => $promo]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.