MySQL 选择 1000 个增量数字

标签 mysql increment

是否可以选择增量数字,例如:

num
1000
1001
1002
1003
1004
...
1999

我已经尝试过:

set @i=999;
select @i:=@i+1 as num
limit 1000

还有:

set @i=999;
select @i:=@i+1 as num
where @i <1999;

最佳答案

你必须对一个 1000 行的表进行操作才能得到你想要的:

SELECT @i := @i+1 AS num
FROM (
  SELECT 1 AS x UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL 
  SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 AS x UNION ALL 
  SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1
) AS t
CROSS JOIN (
  SELECT 1 AS x UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL 
  SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 AS x UNION ALL 
  SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1
) AS s
CROSS JOIN (
  SELECT 1 AS x UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL 
  SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 AS x UNION ALL 
  SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1
) AS u
CROSS JOIN (SELECT @i := 999) AS var

在 10 x 10 x 10 表组合上使用 CROSS JOIN,我们得到一个 1000 行的内联表。以此为基础,我们可以计算所需的 @i 值序列。

Demo here

关于MySQL 选择 1000 个增量数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32435608/

相关文章:

c - 在一个语句中输出多个 post 和 pre increments

列表元素自增

php - MySQL插入后检查前14个字符

javascript - 在 React JS 中使用箭头键递增和递减时获取重复项

python - 为什么这个 python 脚本不会输入到我设置的 MySQL 表中?

jquery - 混合 CodeIgniter、HTML、JQuery 和 MySQL

c - 指针运算中的一元递增运算符

Python - 在 for 循环中增加范围下限

mysql - sql - 将值从一列转移到另一列(单独的数据库)

mysql - 进入数据库后如何获得Mario Kart Wii记分牌积分