在 Laravel 查询构建器中翻译 MySql 查询

Translate a MySql query in a Laravel query builder

SELECT apartment_id, COUNT(created_at) AS n_view,
DATE_FORMAT(created_at, '%Y-%m-%d') as day_view
FROM views
WHERE apartment_id=36 GROUP BY day_view
ORDER BY COUNT(created_at) DESC

如何在 Laravel 查询生成器中翻译此 MySql 查询?

You can do like that use App\Views; use DB;

Views::select('apartment_id', DB::raw("COUNT(created_at) as n_view") ,DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d') as day_view"))->where('apartment_id' ,36)->orderBy('n_view', 'desc')->get();
DB::table('views')
    ->selectRaw("apartment_id, COUNT(created_at) AS n_view, DATE_FORMAT(created_at, '%Y-%m-%d') as day_view")
    ->where("apartment_id", "=", "36")
    ->groupBy('day_view')
    ->orderBy(n_view, "DESC")
    ->get();
$data = $this->views;
$data = $data->select(
    "apartment_id",
    DB::raw("COUNT(created_at) AS n_view"),
    DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d') as day_view")
);
$data = $data->where("apartment_id", 36);
$data = $data->groupBy("day_view");
$data = $data->orderBy("created_at", "desc");
$data = $data->get();

查看 query builder 上的 Laravel 文档并查看示例,您可以轻松地将 SQL 转换为查询构建器:

use Illuminate\Support\Facades\DB;

DB::table('views')
    ->selectRaw("apartment_id, COUNT(created_at) AS n_view, DATE_FORMAT(created_at, '%Y-%m-%d') as day_view")
    ->where('apartment_id', '=', 36)
    ->groupBy('day_view')
    ->orderByRaw('COUNT(created_at) DESC')
    ->get();