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

Cách đơn giản nhất để chèn ngày trống trong kết quả sql (trên mysql hoặc perl end) là gì?

Khi bạn cần một cái gì đó tương tự ở phía máy chủ, bạn thường tạo một bảng chứa tất cả các ngày có thể có giữa hai thời điểm, sau đó nối bảng này với kết quả truy vấn. Một cái gì đó như thế này:

create procedure sp1(d1 date, d2 date)
  declare d datetime;

  create temporary table foo (d date not null);

  set d = d1
  while d <= d2 do
    insert into foo (d) values (d)
    set d = date_add(d, interval 1 day)
  end while

  select foo.d, count(date)
  from foo left join table on foo.d = table.date
  group by foo.d order by foo.d asc;

  drop temporary table foo;
end procedure

Trong trường hợp cụ thể này, tốt hơn là nên kiểm tra một chút ở phía khách hàng, nếu ngày hiện tại không phải là previos + 1, hãy đặt một số chuỗi bổ sung.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt MySQL 8 trên Ubuntu 20.04 LTS

  2. Cài đặt và cấu hình MySQL Workbench trên Ubuntu 16.04

  3. tính tổng thời gian kiểu sử dụng sql

  4. MySQL TIMEDIFF () so với TIMESTAMPDIFF ():Sự khác biệt là gì?

  5. Bảng được chỉ định hai lần, vừa là mục tiêu cho 'CẬP NHẬT' và là nguồn riêng cho dữ liệu trong mysql