sql >> Databasteknik >  >> RDS >> Mysql

generera_series() motsvarande i MySQL

Så här gör jag. Den skapar ett intervall av datum från 2011-01-01 till 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

Det enda kravet är att antalet rader i alla_tabell bör vara större eller lika med storleken på det nödvändiga intervallet (>=365 rader i det här exemplet). Du kommer med största sannolikhet att använda detta som en underfråga till hela din fråga, så i ditt fall any_table kan vara en av tabellerna du använder i den frågan.



  1. Hur man utvärderar uttryck i select-sats i Postgres

  2. MAX vs Top 1 - vilket är bättre?

  3. SQL Server som kör övervakning av frågor

  4. MySQL Foreign Key Error 1005 errnr 150 primärnyckel som främmande nyckel