MySQL 为 db 中的单行获取多行

问题描述 投票:0回答:2

我有一个选择查询

select id from tags

返回数据如

id
--
1
2

我想获取序列号如下所示的数据

id seq
-- ---
1  1
1  2
1  3
1  4
1  5
2  1
2  2
2  3
2  4
2  5

我怎样才能在 mysql 中实现这个

sql mysql
2个回答
1
投票
select id, seq
from tags
cross join (
    select 1 seq union all select 2 union all select 3 union all select 4 union all select 5
) seqs
order by id, seq

with recursive seqs as (
    select 1 seq
    union all
    select seq+1
    from seqs
    where seq < 5
)
select id, seq
from tags
cross join seqs  
order by id, seq  

0
投票

您可以使用指定的增量变量here;

在你的情况下,查询应该是这样的:

SET @rowcount=0;
SELECT id, @rowcount:=@rowcount+1 as seq from tags;
© www.soinside.com 2019 - 2024. All rights reserved.