Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Laravel - isi tanggal dan jumlah yang hilang dari database

Solusi ini berhasil untuk saya, saya pertama kali membuat array dengan semua tanggal dalam rentang waktu, dengan tanggal ditetapkan sebagai kunci dan menghitung nilai ditetapkan sebagai 0, dan kemudian mengganti nilai setelah kueri di DB, dalam array yang sama dengan count nilai dari kueri:

$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. MySQL - Bergabung Berdasarkan Tanggal

  2. php pdo hanya mendapatkan satu nilai dari mysql; nilai yang sama dengan variabel

  3. MySQL:Mengurutkan nilai GROUP_CONCAT

  4. Mengapa Indeks hanya digunakan ketika dipaksa tetapi tidak secara default?

  5. MySQL dump berdasarkan kueri