<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # [技巧] 巧用數據集的排序和過濾功能 經常會遇到一些業務統計的需求,每次查詢都是動態計算的,例如查詢一個用戶列表,并包含一個每一個用戶的總分(統計)數據。 ``` // 關聯查詢用戶的總成績 User::withSum('Score', 'score')->select(); ``` 由于涉及到聚合查詢以及多表關聯查詢,所以如果要對總分進行排序并不是特別的方便,我們可以用數據集自帶的排序功能來實現統計數據的排序。 ``` // 關聯查詢用戶的總成績 $users = User::withSum('Score', 'score')->select(); // 把按照總分由高到低排序 // score_sum是withSum默認返回的統計字段名稱 $users = $users->order('score_sum', 'desc'); ``` >[info] 這個例子使用了`withSum`,實際應用中并非必須。如果使用的是獲取器方式獲取的統計和動態數據都可以適用于數據集的排序方法。 >[danger] 但如果使用了分頁查詢,則只能用于當前頁的內容排序,請謹慎使用。 這是一種相對比較高性能和低成本的統計結果排序的解決方案,當然,如果對統計結果沒有實時性的要求的話,建議使用查詢緩存提升查詢性能。 除了對結果排序之外,數據集還有很多方便的方法,這里順便提下。 如果你需要對查詢的結果進行分批次的處理,每次需要過濾一些不同的數據,可以使用 ``` // 模型查詢返回數據集對象 $users = User::where('score', '>', 0)->select(); // 成績在90分以上的用戶 $list1 = $users->where('score', '>=', 90); // 成績在80分和90分之間的用戶 $list2 = $users->where('score', '<', 90)->where('score', '>=', 80); ``` 對于一些數據的并集、交集以及差集的處理,也可以通過數據集的相關方法來完成。 ``` // 查詢具有測試(角色)權限的用戶 $list1 = User::hasWhere('Role', ['role'=>'test'])->field('id,name')->select(); // 查詢具有編輯(角色)權限的用戶 $list2 = User::hasWhere('Role', ['role'=>'editor'])->field('id,name')->select(); // 獲取有測試權限但沒有編輯權限的用戶 dump($list1->diff($list2)); // 獲取同時有測試權限和編輯權限的用戶 dump($list1->intersect($list2)); ``` 關于數據集的更多方法可以參考手冊。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看