0
這是一些排序:(LARAVEL)兩個ORDER BY和LIMIT
- 獲得20個職位通過 「意見」 進行排序。
- AFTER IT FINISH,然後進入下一步。
- 按「created_at」對其進行排序。
怎麼辦?
繼承人我的當前代碼(哪些工作,但我不想使用SORTBY)出於某種原因sortby不適用於其他項目。如果可能的話我希望它是作爲一個雄辯查詢:
$this->data['today_post'] = Posts::orderBy('views', 'desc')->whereRaw('created_at >= NOW() - INTERVAL 1 DAY')->limit(20)->get();
$this->data['today_post'] = $this->data['today_post']->sortByDesc('created_at');
此代碼是不工作的,因爲限制是作爲最後的操作通常適用,因此結果將首先通過「意見」和「created_at」進行排序然後限制爲20個。我不想要那個。我想排序,然後限制完成。我想再次分類。
$this->data['today_post'] = Posts::orderBy('views', 'desc')->orderBy('created_at', 'desc')->whereRaw('created_at >= NOW() - INTERVAL 1 DAY')->limit(20)->get();
謝謝你這麼多
用普通的SQL你可以做一個子查詢之類的東西,但不知道eloqent如何做類似的東西。 'SELECT * FROM(SELECT * FROM abc WHERE a = b ORDER BY date ASC)ORDER BY xyz ASC' – JustOnUnderMillions
我不明白它有什麼不同。如果你按照'views'和'created_at'排序,並且取20,你或多或少會採用相同的。唯一的區別是,如果第20個點是一條平局線,並且在這種情況下,如果您未按照創建的順序進行排序,則會得到未定義的順序。 – apokryfos