gpt4 book ai didi

mysql - 如何选取单行a 100,000,000 x

转载 作者:可可西里 更新时间:2023-11-01 07:17:03 25 4
gpt4 key购买 nike

我想生成以下输出,使用来自选择的单行。

SELECT max(t1.id)+1 as new_id FROM t1;
-> 101

However I want to do

SELECT s.last_id, sequence(1..100000000) as new_id
FROM (SELECT max(table1.id)+1 as last_id FROM table1) s;
-> 101,1
-> 101,2
-> 101,3
......
-> 101,100000000

在 postgreSQL 中,我可以使用:

SELECT s.last_id, generate_series(1,100000000) 
FROM (SELECT max(table1.id)+1 as last_id FROM table1) s; -- returns 100,000,000 rows

如何在不使用临时表的情况下在 MySQL 中执行此操作?

最佳答案

对 Bruno 的解决方案略作修改

SELECT (SELECT COALESCE(max(id),0)+1 FROM table1), 
@rownum:=@rownum+1 new_id
FROM
(SELECT @rownum:=0) r,
(SELECT 1 UNION ALL SELECT 2) t1,
(SELECT 1 UNION ALL SELECT 2) t2,
(SELECT 1 UNION ALL SELECT 2) t3,
(SELECT 1 UNION ALL SELECT 2) t4,
(SELECT 1 UNION ALL SELECT 2) t5,
(SELECT 1 UNION ALL SELECT 2) t6,
(SELECT 1 UNION ALL SELECT 2) t7
LIMIT 100

或者没有变量的另一个版本

SELECT (SELECT Coalesce(MAX(id), 0) + 1
FROM table1),
t1.n * 10 + t2.n + 1 AS new_id
FROM (SELECT 0 AS n UNION ALL
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9) t1,
(SELECT 0 AS n UNION ALL
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9) t2
ORDER BY new_id

关于mysql - 如何选取单行a 100,000,000 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7513996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com