在MySQL中等效于generate_series()

我需要进行查询并与一年中的所有日子一起加入,但是在我的数据库中没有日历表。

谷歌搜索后,我generate_series()在PostgreSQL中找到了。MySQL有类似的东西吗?

我的实际表有这样的东西:

date     qty

1-1-11 3

1-1-11 4

4-1-11 2

6-1-11 5

但是我的查询必须返回:

1-1-11    7

2-1-11 0

3-1-11 0

4-1-11 2

and so on ..

回答:

这就是我的方法。它创建了从 2011-01-012011-12-31 的日期范围:

select 

date_format(

adddate('2011-1-1', @num:=@num+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

唯一的要求是 的行 应大于或等于所需范围的大小(在此示例中,> =

365行)。您很可能会将其用作整个查询的子查询,因此,在这种情况下, 可以是该查询中使用的表之一。

以上是 在MySQL中等效于generate_series() 的全部内容, 来源链接: utcz.com/qa/426389.html

回到顶部