我對舊的 Codeigniter 專案有以下查詢:
$this->db->select("SUM(source = 'FBS) AS facebook");
$this->db->select("SUM(source = 'FBS' AND promotion = 0) AS facebook_promotion");
$this->db->select("SUM(source = 'IG') AS instagram");
$this->db->select("SUM(source = 'LP') AS landing_page");
如果可以使用 Eloquent 而不是 Query Builder 或 Raw Query,我希望使用 Laravel 獲得相同的結果。
uj5u.com熱心網友回復:
如果您想使用原始查詢生成器,就像,
DB::table('table_name')->where('source','=','FBS')->sum('source');
對于 Eloquent 模型,
Model::where('source','=','FBS')->sum('source')
它也適用于雄辯的關系。
此外,對于像你這樣的多個總和結果,它會像,
DB::table('table_name')->get( array(
DB::raw("SUM(source = 'FBS) AS facebook"),
DB::raw("SUM(source = 'FBS' AND promotion = 0) AS facebook_promotion"),
));
uj5u.com熱心網友回復:
使用 DB::raw 以這種方式解決;
$data = CONTACT::select(
DB::raw('DATE_FORMAT(created_at, "%m-%d-%Y")),
DB::raw('SUM(source = "IG") as instagram'),
DB::raw('SUM(source = "FBS") as facebook')
)
->orderBy('data', 'DESC')
->groupBy(DB::raw("DATE_FORMAT(created_at, '%d-%m-%Y')"))
->get();
return response()->json(['success' => $data], 200);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/431254.html
