首頁 > 後端開發 > php教程 > laravel:只用一條語句,如何查出一個表裡,不同條件對應的資料條數

laravel:只用一條語句,如何查出一個表裡,不同條件對應的資料條數

WBOY
發布: 2016-08-04 09:19:16
原創
965 人瀏覽過

laravel:只用一條語句,如何查出一個表裡,不同條件對應的資料條數

如下表:

<code>id       name          age          sex 
1          a            1            0
2          b            10           1          
3          c            2            1
</code>
登入後複製
登入後複製

得出:sex為1且age為2的數量,sex為1且age為5的數量,sex為1且age為10的數量
要求:效率高
可能我表達的不是很清楚,需要得出的是sex為1的情況下,有幾個是2歲,多少個是5歲,多少個是10歲這三個答案

註:最好是laravel框架語句,最好不要原生態語句,資料量有幾十萬至幾百萬條

各位大佬幫忙~

回覆內容:

laravel:只用一條語句,如何查出一個表裡,不同條件對應的資料條數

如下表:

<code>id       name          age          sex 
1          a            1            0
2          b            10           1          
3          c            2            1
</code>
登入後複製
登入後複製

得出:sex為1且age為2的數量,sex為1且age為5的數量,sex為1且age為10的數量
要求:效率高
可能我表達的不是很清楚,需要得出的是sex為1的情況下,有幾個是2歲,多少個是5歲,多少個是10歲這三個答案

註:最好是laravel框架語句,最好不要原生態語句,資料量有幾十萬至幾百萬條

各位大佬幫忙~

試試這句
Table::select(DB::raw('age,count(id) count'))->where('sex',1)->groupBy('age')->get( )->toArray();

SQL不是太懂,但用Query Builder取代Eloquent ORM就可以提高效率,這個ORM雖然非常強大,但也是Laravel最慢的地方。

如果是題主的要求的話就是使用DB的聚合功能
DB::table('yourtable')->where('sex', 1)->where('age', $age)->count( );
不知道是不是就是樓主要的邏輯

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板