sql >> Database teknologi >  >> RDS >> Mysql

gener_series() ækvivalent i MySQL

Sådan gør jeg det. Det opretter en række datoer fra 2011-01-01 til 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 eneste krav er, at antallet af rækker i enhver_tabel skal være større eller lig med størrelsen af ​​det nødvendige område (>=365 rækker i dette eksempel). Du vil højst sandsynligt bruge dette som en underforespørgsel til hele din forespørgsel, så i dit tilfælde any_table kan være en af ​​de tabeller, du bruger i den forespørgsel.



  1. Anmodning indstillet i Concurrent Manager

  2. Bed dine brugere om at gå i gaffel

  3. Sådan finder du låste rækker i Oracle

  4. Underforespørgsel ved hjælp af Exists 1 eller Exists *