with recursive ts(v) as (
select current_date
union all
select v + 1 from ts limit 7
select * from ts;
2020-07-15|
2020-07-16|
2020-07-17|
2020-07-18|
2020-07-19|
2020-07-20|
2020-07-21|
如果觉得文章对你有用,欢迎关注❤️、评论📝、点赞👍
介绍如何在 MySQL 中生成连续的数字、字符以及时间序列值。包括使用视图模拟生成连接的数字序列、间隔的数字序列、连续的字符序列以及间隔的时间序列,使用通用表表达式生成等差数字序列、等比数字序列、斐波那契数列、连续的字符序列以及间隔的时间序列。
有时候,需要自动生成某一年的日期表(比如用于录入当年的法定节假日,或者其他需要生成一整年只含日期数据的空表,方便以后补充)
例如:需要生成2008年的日期表
2.1. 前期准备
需要一张只包含id为1-500的表,数据如下(表怎么快速生成不做叙述)
select * from t500;
MySQL 使用过程当中,经常需要有连续数字的表用来处理一些复杂的报表逻辑,这个blog介绍几种生成连续数字的表方法
如下,我需要生成一张表 id连续的从 1-50
文章目录一.自定义变量的方法二.存储过程的方法三.MySQL 8.0 With递归方法
一.自定义变量的方法
构造两个临时表 一个5一个10,通过笛卡尔积可以构造50行记录,即可构造50条记录
SELECT @xi:=@xi+1 as xc from
(SELECT 1 UNION SELECT 2 UNION SELECT 3
一、生成数列1.1 生成连续编号首先构建一张 Digits 表,包含数字 0 至 9。Table: DigitsSELECT a.num + (b.num * 10) AS num FROM Digits AS a
CROSS JOIN Digits AS b;1.2 生成部分编号接下来,生成从 1 至 899 的连续编号。SELECT a.num + (b.num * 10) + (c.num ...
mysql> desc nums;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+-------...