【问题标题】:Translate a MySql query in a Laravel query builder在 Laravel 查询构建器中翻译 MySql 查询
【发布时间】:2020-06-03 14:10:18
【问题描述】:
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 查询?

【问题讨论】:

标签: mysql laravel query-builder laravel-query-builder


【解决方案1】:

查看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();

【讨论】:

    【解决方案2】:

    你可以这样做,使用 App\Views;使用数据库;

    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();
    

    【讨论】:

      【解决方案3】:
      $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();
      

      【讨论】:

        【解决方案4】:
        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();
        

        【讨论】:

        • 在最近一次编辑后(删除n_view 周围的一些引号),这将引发语法错误。此外,请在您的答案中添加一些解释,以便其他人可以从中学习
        • 虽然此代码可以解决 OP 的问题,但最好包含关于您的代码如何解决 OP 问题的说明。这样,未来的访问者可以从您的帖子中学习,并将其应用到他们自己的代码中。 SO 不是编码服务,而是知识资源。此外,高质量、完整的答案更有可能获得支持。这些功能,以及所有帖子都是独立的要求,是 SO 作为一个平台的一些优势,使其与论坛区分开来。您可以编辑以添加其他信息和/或使用源文档补充您的解释。
        猜你喜欢
        • 2015-11-07
        • 2013-09-13
        • 1970-01-01
        • 2021-06-10
        • 1970-01-01
        • 1970-01-01
        • 2021-12-11
        • 2015-07-12
        • 2021-09-25
        相关资源
        最近更新 更多