Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:wybierz wszystkie daty w zakresie, nawet jeśli nie ma żadnych rekordów

Mam nadzieję, że wymyślisz resztę.

select  * from (
select date_add('2003-01-01 00:00:00.000', INTERVAL n5.num*10000+n4.num*1000+n3.num*100+n2.num*10+n1.num DAY ) as date from
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n1,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n2,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n3,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n4,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n5
) a
where date >'2011-01-02 00:00:00.000' and date < NOW()
order by date

Z

select n3.num*100+n2.num*10+n1.num as date

otrzymasz kolumnę z liczbami od 0 do max(n3)*100+max(n2)*10+max(n1)

Ponieważ tutaj mamy max n3 jako 3, SELECT zwróci 399, plus 0 -> 400 rekordów (dat w kalendarzu).

Możesz dostroić swój dynamiczny kalendarz, ograniczając go, na przykład, od min(data) musisz do now().



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać wszystkie wartości w kolumnie za pomocą PHP?

  2. Jak dołączyć do MySQL i Postgres w zmaterializowanym widoku na żywo

  3. Co monitorować w MySQL 8.0

  4. HAProxy:wszystkie zasoby z serii Kilkanaście

  5. Przyznaj MySQL uprawnienia do tabel i kolumn