当前位置: 首页 > 面试题库 >

在MySQL中等效于generate_series()

章涵蓄
2023-03-14
问题内容

我需要进行查询并与一年中的所有日子一起加入,但是在我的数据库中没有日历表。
谷歌搜索后,我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

唯一的要求是 any_table中 的行 应大于或等于所需范围的大小(在此示例中,> =
365行)。您很可能会将其用作整个查询的子查询,因此,在这种情况下, any_table 可以是该查询中使用的表之一。



 类似资料:
  • 问题内容: 在MySQL中,当另一个值=时,我希望能够进行搜索。在MySQL中用于拆分字符串的语法是什么?在PHP中,我可能会使用并将它们放在一起。有没有办法在MySQL中做到这一点? 背景:我正在研究体育比分,并且想尝试分数相同(并且在同一日期)的比赛-每个球队列出的分数与对手的数据库记录相比是倒数的。 理想的MySQL调用是: (需要向后)。 问题答案: MYSQL没有内置类似函数。但是您可以

  • 问题内容: 我正在从xml配置转移到注释。我想转换一个会话范围的bean是 可以通过注释完成此操作吗?如果没有,我该怎么做才能使该声明继续工作? 问题答案: 在spring上下文xml中,执行以下操作: 请注意,尽管如此,你将需要为该包中的所有类编写接口。

  • 问题内容: 我一直在大量阅读有关SQL SERVER LIMIT子句的替代方法。太令人沮丧了,他们仍然拒绝适应它。无论如何,我真的没办法解决这个问题。我要转换的查询是这样的… 任何帮助将不胜感激,谢谢。 问题答案: 在SQL Server 2012中,支持ANSI标准/ 语法。我在博客上发表了这篇文章,这是官方文档(这是的扩展)。为SQL Server 2012转换的语法为: 在此之前,您需要使用

  • 问题内容: 这个问题已经在这里有了答案 : MySQL中的ROW_NUMBER() (24个答案) 7年前关闭。 我正在尝试将在Microsoft SQL Server中创建的SQL脚本转换为可以通过链接服务器运行的SQL脚本,该脚本可以在SQL Procedures(我正在使用的脚本)中使用 创建一个不依赖于自动增量的主键,当我尝试将代码保存为过程时,出现此错误 错误1064(42000):您的

  • 问题内容: 在预发布文档中,似乎没有Swift版本的CGPathApply。是否有同等的或替代的?我正在尝试获取CGPath的所有子路径,以便可以从其他起点重绘它。 问题答案: 斯威夫特3.0 在Swift 3.0中,您可以这样使用: 斯威夫特2.2 通过添加,您现在可以直接从Swift进行调用。这是做必要魔术的包装器: (请注意,我的代码中没有提到,但是在Core Graphics模块的声明中使

  • 问题内容: 我正在遵循此处的指导(侦听事件)以响应+或服务器关闭来正常关闭Windows-8托管的node.js应用程序。 但是Windows没有。我也尝试过,但这似乎迟迟没有任何成效。 在Windows上,此代码为我提供: 错误:无此类模块 在Windows上,此代码可以运行,但现在 做任何优雅的动作为时已晚 : Windows上是否有等效事件? 问题答案: 您必须使用readline模块并监听