簡體   English   中英

在laravel中從union和paginate的子查詢中選擇

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM