mysql - 使用 SQL 生成模式

标签 mysql sql

我有一个表,其中有一列包含数字 1-100。想要生成每个数字 N 重复 N 次的输出(因此 5 应出现 5 次):

1
2
2
3
3
3
4
4
4
4
and so on

最佳答案

对于8.0之前的mysql版本,

create table _set(n int);

insert into _set(n) values (1), (2), (3), (4), (5), (6); -- this goes on

select s2.* from _set as s
  join _set as s2 on s.n <= s2.n;

临时表不能打开两次documented issue .

对于mysql版本8.0,试试这个,

with _set as (select 1 as n 
            union all
            select n+1 as n from _set
            where n < 100
            )
select s2.* from _set s
    join _set s2 on s.n <= s2.n

关于mysql - 使用 SQL 生成模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373758/

相关文章:

MySQL Join、Select、多个条件

mysql - 使用相同打开的连接插入超过 50 个查询

sql - 使用合并在 SQL 中合并两个表

sql - 在单个查询中获取不同表的不同列的总和

php - ODBC,PHP while 循环将数据分配给数组

mysql - 为什么 Perl 的 DBI 占位符会因负数 MySQL 查询而中断?

php - WHERE 子句和 INT(11) 数据类型在 MySQL 中不起作用

javascript - 在我的 WHERE 上使用 IN chop 不正确的 DOUBLE 值

mysql select count(column) where sum(column) > 值

mysql - 向数据库添加特殊字符?