Laravel将查询mysql转换为模型查询

时间:2018-05-23 05:11:30

标签: php laravel

我有模特正常运行时间。如何使用模型查询进行此查询?

SELECT server_id, COUNT(*) status FROM uptime WHERE online = 0 GROUP BY server_id

我试试:

Uptime::where('online', 0)->get(); 

但这不正确。我需要COUNT(*)和分组选择。

3 个答案:

答案 0 :(得分:2)

Uptime::whereOnline(0)
    ->groupBy('server_id')
    ->select('server_id', DB::raw('count(*) as status'))
    ->get();

whereOnlinewhere('online', 0)

的快捷方式

答案 1 :(得分:0)

Uptime::select('server_id', DB::raw('COUNT(*) as status'))
        ->where('online',0)
        ->groupBy('server_id')
        ->get();

答案 2 :(得分:-1)

根据laravel docs Raw Expressions

此代码适用于COUNT(*)GROUP BY查询

DB::table('uptime')->select(DB::raw('COUNT(*) as status'))
    ->where('online',0)
    ->groupBy('server_id')
    ->get();

原始语句将作为字符串注入到查询中,因此您应该非常小心,不要创建SQL注入漏洞。