国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 幫助中心 > 正文

Laravel 實現(xiàn)Eloquent模型分組查詢并返回每個分組的數(shù)量 groupBy

2024-07-09 22:40:57
字體:
來源:轉載
供稿:網(wǎng)友

Laravel 5.5

Linux mint 18

PHPStorm

最近剛玩Laravel,手冊源碼還沒來得及看完就躍躍欲試做了個小項目,其中有個需求是分組查詢數(shù)據(jù)庫中的一個字段并返回每個分組中的數(shù)量,還是去翻手冊(手冊確實夠簡單):

groupBy 和 having 方法可用來對查詢結果進行分組。having 方法的用法和 where 方法類似:$users = DB::table('users')   ->groupBy('account_id')   ->having('account_id', '>', 100)   ->get();

網(wǎng)上去查,發(fā)現(xiàn)一個輪子

$user_info = DB::table('usermetas')    ->select('browser', DB::raw('count(*) as total'))    ->groupBy('browser')    ->get();

再去查手冊

## 指定一個 Select 子句#當然,你并不會總是想從數(shù)據(jù)表中選出所有的字段。這時可使用 select 方法自定義一個 select 子句來查詢指定的字段:$users = DB::table('users')->select('name', 'email as user_email')->get();## 原始表達式#有時候你可能需要在查詢中使用原始表達式。這些表達式將會被當作字符串注入到查詢中,所以要小心避免造成 SQL 注入攻擊!要創(chuàng)建一個原始表達式,可以使用 DB::raw 方法:$users = DB::table('users')     ->select(DB::raw('count(*) as user_count, status'))     ->where('status', '<>', 1)     ->groupBy('status')     ->get();

可惜總是愛折騰,不想著用點奇跡淫巧就對不起自己這手藝人,于是有了:

$sql = Data::raw('count(*) as value');$obj = self::whereBetween('modified',[$begin,$end])->select('city as name',$sql)            ->groupBy('city')            ->get()            ->toArray();

代碼也不客氣了,直接撂了挑子:

毛病出在這句身上:

$sql = Data::raw('count(*) as value'); 

我用了個Data(Model),返回的是個Builder對象,而此處卻要一個字符串,所以改回了

$sql = DB::raw('count(*) as value');

此時$sql是個string,至于有木有辦法在此處用Model,慢慢研究吧,任重道遠!

參考:

Laravel Eloquent groupBy() AND also return count of each group

以上這篇Laravel 實現(xiàn)Eloquent模型分組查詢并返回每個分組的數(shù)量 groupBy()就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)之家。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 呼和浩特市| 金川县| 阳城县| 晋城| 大安市| 石家庄市| 巴林右旗| 桐庐县| 浮山县| 蕉岭县| 三江| 东乌珠穆沁旗| 工布江达县| 建始县| 湟中县| 康乐县| 肃南| 通山县| 都昌县| 方山县| 青河县| 泗水县| 嘉定区| 基隆市| 普安县| 晋江市| 克拉玛依市| 遵义县| 介休市| 彭水| 瑞丽市| 娱乐| 曲麻莱县| 格尔木市| 顺义区| 巧家县| 扶余县| 定南县| 秦安县| 庆云县| 道孚县|