是否有可能選擇增加的數字,如: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