是否有可能选择增加的数字,如:MySQL的选择1000增量数
num
1000
1001
1002
1003
1004
...
1999
我已经试过:
set @i=999;
select @i:[email protected]+1 as num
limit 1000
也:
set @i=999;
select @i:[email protected]+1 as num
where @i <1999;
是否有可能选择增加的数字,如:MySQL的选择1000增量数
num
1000
1001
1002
1003
1004
...
1999
我已经试过:
set @i=999;
select @i:[email protected]+1 as num
limit 1000
也:
set @i=999;
select @i:[email protected]+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使用CROSS JOIN
10 10表组合,我们得到一个1000行线表。以此为基础,我们可以计算所需的@i
值的顺序。
我假设(可能是错误的)你试图根据自动递增的主键选择行,看到这是MySQL?
“BETWEEN”关键字会更好用,而不是使用变量吗?
例如,如果你想选择表“mytable的”和“民”行是主键:
SELECT num FROM myTable
WHERE num BETWEEN 999 AND 1999
下面是一个简单的查询,打印数量1000 - 1999与一组增量值。
DECLARE @firstNumber INT
DECLARE @lastNumber INT
DECLARE @incrementBy INT
SET @firstNumber = 1000
SET @lastNumber = 1999
SET @incrementBy = 1
CREATE TABLE #TEMP (number INT)
WHILE(@firstNumber <= @lastNumber)
BEGIN
INSERT INTO #TEMP VALUES (@firstNumber)
SET @firstNumber = @firstNumber + @incrementBy
END
SELECT * FROM #TEMP
DROP TABLE #TEMP
谢谢,但无法正常工作:'code'#1064 - 您的SQL语法错误;检查与您的MariaDB服务器版本相对应的手册,以找到在WHILE(@firstNumber <= @ lastNumber)'code'附近使用的正确语法 – Kris
谢谢:)但是,如果我想选择123450000和123459999之间的数字,我应该如何修改此代码? – Kris
@Kris简单地将'@ i'初始化,即从'CROSS JOIN(SELECT @i:= 999)'更改为'CROSS JOIN(SELECT @i:= 123450000)'。另外,如果您想要10,000个数字而不是1,000个,则必须添加另一个10个值的内联表,以便获得10,000行所需的笛卡尔积。 –
谢谢。完美的解决方案,但是有可能编号从123450000开始并以123459999结束?在你的例子中,以123450001开头,以123460000结尾。 – Kris