将MySQL选择循环查询更改为Laravel 5.5

时间:2018-06-10 10:17:53

标签: php laravel

如何将此查询更改为Laravel 5.5

"SELECT ROUND((COUNT(STATUS)/(SELECT COUNT(*) FROM data_ap))*100,1)
 FROM data_ap WHERE STATUS LIKE '%UP%'";

3 个答案:

答案 0 :(得分:2)

类似的东西:

\DB::table('data_ap')
  ->select(\DB::raw('ROUND((COUNT(STATUS)/(SELECT COUNT(*) FROM data_ap))*100,1) as calc'))
  ->where('STATUS','like','%UP%')
  ->get();

答案 1 :(得分:0)

我认为您必须使用Raw Expressions保留原生查询,以获取更多https://laravel.com/docs/5.6/queries#raw-expressions

答案 2 :(得分:0)

@Muhammad Anwari:您只需指向目标列/别名即可

\DB::table('data_ap')
   ->select(\DB::raw('ROUND((COUNT(STATUS)/(SELECT COUNT(*) FROM data_ap))*100,1) as calc'))
   ->where('STATUS','like','%UP%')
   ->first()->calc;