Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel - điền ngày và số lượng còn thiếu từ cơ sở dữ liệu

Giải pháp này phù hợp với tôi, đầu tiên tôi tạo một mảng với tất cả các ngày trong phạm vi thời gian, với ngày được đặt làm khóa và giá trị đếm được đặt là 0, sau đó thay thế các giá trị sau truy vấn trong DB, trong cùng một mảng với số giá trị từ truy vấn:

$period = new DatePeriod( new DateTime($from), new DateInterval('P1D'), new DateTime($to));
      $dbData = [];

      foreach($period as $date){
          $range[$date->format("Y-m-d")] = 0;
      }

      $data = DB::table($request['option'])
                ->select(DB::raw('DATE(created_at) as time'), DB::raw('count(*) as count'))
                ->whereDate('created_at', '>=', date($from).' 00:00:00')
                ->whereDate('created_at', '<=', date($to).' 00:00:00')
                ->groupBy('time')
                ->get();

      foreach($data as $val){
        $dbData[$val->time] = $val->count;
      }

      $data = array_replace($range, $dbData);
    }

    return json_encode($data);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Select bao gồm Kiểu dữ liệu và Giá trị dữ liệu

  2. Làm cách nào để đặt cấu hình máy khách cho MySQL Workbench mà không cần máy chủ được cài đặt?

  3. Điều gì đang gây ra lỗi PDO Không thể thực hiện các truy vấn trong khi các truy vấn không có bộ đệm khác đang hoạt động?

  4. GROUP_CONCAT và INNER JOIN với mệnh đề WHERE

  5. Máy chủ Ruby on Rails sẽ không khởi động:dyld:liên kết biểu tượng lười biếng không thành công:Không tìm thấy biểu tượng:_mysql_get_client_info