sql >> Databáze >  >> RDS >> Mysql

ekvivalent create_series() v MySQL

Takhle to dělám já. Vytváří rozsah dat od 1. 1. 2011 do 2011-12-31 :

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

Jediným požadavkem je počet řádků v any_table by měla být větší nebo rovna velikosti potřebného rozsahu (>=365 řádků v tomto příkladu). S největší pravděpodobností to použijete jako poddotaz celého vašeho dotazu, takže ve vašem případě any_table může být jedna z tabulek, které používáte v tomto dotazu.



  1. Zapomenuté heslo root mysql

  2. Chyba syntaxe na konci vstupu v PostgreSQL

  3. Jak rozbalit soubor v PL/SQL?

  4. Jak klasifikovat, najít a maskovat PII v databázích…