我不喜欢其他的答案,要求创建表格等等。这个查询在没有helper表的情况下有效地执行。SELECT

IF(score IS NULL, 0, score) AS score,

b.Days AS date

FROM

(SELECT a.Days

FROM (

SELECT curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY AS Days

FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a

CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b

CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c

) a

WHERE a.Days >= curdate() - INTERVAL 30 DAY) b

LEFT JOIN your_table

ON date = b.Days

ORDER BY b.Days;

所以让我们来分析一下。SELECT

IF(score IS NULL, 0, score) AS score,

b.Days AS date

if将检测没有得分的天数并将其设置为0。b、 Days是您从当前日期选择的配置天数,最多1000天。(SELECT a.Days

FROM (

SELECT curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY AS Days

FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a

CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b

CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c

) a

WHERE a.Days >= curdate() - INTERVAL 30 DAY) b

这个子查询是我在stackoverflow上看到的。它有效地从当前日期生成过去1000天的列表。结尾WHERE子句中的间隔(当前为30)决定返回哪些天;最大值为1000。这个查询可以很容易地修改为返回值为100年的日期,但1000年应该对大多数事情都有好处。LEFT JOIN your_table

ON date = b.Days

ORDER BY b.Days;

这是将包含分数的表放入其中的部分。与日期生成器查询中的选定日期范围进行比较,以便能够在需要时填充0(分数最初将设置为NULL,因为它是LEFT JOIN;这在select语句中是固定的)。我也按日期点,只是因为。这是您的偏好,您也可以按分数订购。

在ORDER BY之前,您可以很容易地加入到您的表中,其中包含您在编辑时提到的用户信息,以添加最后一个需求。

我希望这个版本的查询可以帮助某些人。谢谢你的阅读。

mysql日期序列填充_MySQL如何在范围内填充缺失的日期?相关推荐

  1. mysql数据库序列作用_MySQL 序列使用

    MySQL 序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使用MySQL的序 ...

  2. mysql 查找课程最高分_mysql 查询 学生id最高分的科目和日期

    mysql>select*fromstudent;+------+---------+------+---------+|id|subject|mark|date|+------+------- ...

  3. mysql 手动写时间_MySQL如何在范围内填写缺失日期?

    白板的微信 我不喜欢其他答案,要求创建表格等等.这个查询在没有助手表的情况下有效地完成了它.SELECT     IF(score IS NULL, 0, score) AS score,    b. ...

  4. mysql inner join原理_MySQL INNER JOIN:内连接

    在<MySQL交叉连接>一节中我们了解了 MySQL 的交叉连接,本节主要介绍多表查询的另一种方式--内连接. 内连接(INNER JOIN)主要通过设置连接条件的方式,来移除查询结果中某 ...

  5. mysql 周边x公里_mySQL选择y范围内x公里/英里内的zipcodes

    注意:虽然我使用荷兰zipcodes的zipcode数据库,但是这个问题是独立于国家的. 例如zipcode: $baseZipCode = 1044; 坐标如下: x coordinate = 4, ...

  6. mysql条件填充命令_MySQL如何填充范围内的缺失日期?

    我有一个包含2列的表格,日期和分数.它最多有30个条目,最近30天内每个条目一个. date score ----------------- 1.8.2010 19 2.8.2010 21 4.8.2 ...

  7. 【数据库2】生成txt/xml文件,ftp,oracle安装/表操作/虚表/日期/序列/索引/视图/链路/同义词/高可用性,mysql/文件入库/清理/表结构设计/交换/收集

    文章目录 1.生成数据:crontab 2.ftp:ftp是tcp/ip协议族中一员,分客户端和服务端 2.1 安装:linux操作系统的用户也是ftp的用户,可以配置专用的ftp用户,专用的ftp用 ...

  8. Mysql sequence使用_MySQL 序列使用_mysql sequence_mysql auto increment

    MySQL 序列使用 MySQL序列是一组整数:1, 2, 3, -,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使 ...

  9. mysql日期格式化季度_mysql中常用日期比较与计算函数

    MySql中时间比较的实现 unix_timestamp() unix_timestamp 函数可以接受一个参数,也可以不使用参数. 它的返回值是一个无符号的整数.不使用参数,它返回自1970年1月1 ...

最新文章

  1. android app文档,android App项目需求描述文档.docx
  2. css设置标题边框,css 如何让文字标题显示在边框上?
  3. 得到按钮所在DIV的ID
  4. cgi硬盘安装器_系统镜像安装CGI备份还原
  5. 编译 php7,编译PHP7
  6. Glib2: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)问题(六)
  7. 第三季-第13课-无名管道通讯编程
  8. 【路径规划】基于matlab蚁群算法求解公交车路径规划问题【含Matlab源码 930期】
  9. 卡BIN指的是发卡行识别码
  10. swf导出html代码,将SWF轻松导出HTML5
  11. 如何用算法预测世界杯?
  12. 《人生十论》. 钱穆
  13. 5不触发系统键盘_防盗报警系统基础知识汇总
  14. 睡不醒别赖基因,UC伯克利最新研究:锻炼和早餐是关键
  15. 树为什么能长这么高?
  16. oracle client 是什么,Oracle数据库与客户端有什么区别
  17. ZYNQ仿真器当做串口使用
  18. excel读取 hutool_Mr · 范
  19. 数字图像处理Python语言实现-灰度图像阈值化-OSTU方法
  20. python打印七段数码管引脚图_前辈学51单片机的感悟是怎么样的?说说看

热门文章

  1. 传说之下地图素材_文旅黄陵——轩辕黄帝传说故事(十一) 杜康酿酒的传说...
  2. python 代码分块_[代码全屏查看]-python多进程分块读取文件
  3. LwIP 之五 详解动态内存管理 内存堆(mem.c/h)
  4. CopyOnWriteArrayList源码
  5. aac蓝牙编解码协议_最新的真无线蓝牙耳机选购指南
  6. Cpp 对象模型探索 / 拷贝构造函数 和 赋值构造函数 的调用时机
  7. 实用计算机相关日语词汇,常用日语计算机词汇~~
  8. 小程序获取openid保存缓存吗_微信小程序把openid放到缓存里
  9. Git 下载很慢问题解决方案
  10. 两个构件的重合点_初三物理易错点:你被眼睛欺骗了,那些『平面镜成像』中的困惑...