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

odpowiednik generate_series() w MySQL

Tak to robię. Tworzy zakres dat od 2011-01-01 do 31.12.2011 :

select 
    date_format(
        adddate('2011-1-1', @num:[email protected]+1), 
        '%Y-%m-%d'
    ) date
from 
    any_table,    
    (select @num:=-1) num
limit 
    365

-- use limit 366 for leap years if you're putting this in production

Jedynym wymaganiem jest liczba wierszy w dowolnej_tabeli powinien być większy lub równy rozmiarowi potrzebnego zakresu (w tym przykładzie>=365 wierszy). Najprawdopodobniej użyjesz tego jako podzapytania całego zapytania, więc w Twoim przypadku any_tabela może być jedną z tabel używanych w tym zapytaniu.



  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:Wybierz wiersze z tabeli, których nie ma w innej

  2. Lokalny host MySQL !=127.0.0.1?

  3. Jak uzyskać następny/poprzedni rekord w MySQL?

  4. Alternatywy MySQL Workbench — zarządzanie użytkownikami bazy danych ClusterControl

  5. Porównanie między wtyczką MySQL Clone a Xtrabackup