You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中将单条数据扩展为带序号的多条记录?

MySQL实现每个ID生成1-5序号的方法

你可以通过**交叉连接(CROSS JOIN)**结合数字序列的方式实现需求,以下是两种可行方案:

方案一:使用临时数字表(兼容所有MySQL版本)

直接构造包含1-5的临时数据集,和原表做交叉连接,让每个ID对应所有序号:

SELECT t.id, n.seq
FROM tags t
CROSS JOIN (
    SELECT 1 AS seq UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 UNION ALL
    SELECT 5
) n
ORDER BY t.id, n.seq;

方案二:使用递归CTE(MySQL 8.0及以上版本)

利用递归公共表达式生成1-5的序列,再和原表交叉连接,适合需要动态调整序号范围的场景:

WITH RECURSIVE seq_num AS (
    SELECT 1 AS seq
    UNION ALL
    SELECT seq + 1 FROM seq_num WHERE seq < 5
)
SELECT t.id, s.seq
FROM tags t
CROSS JOIN seq_num s
ORDER BY t.id, s.seq;

两种方案执行后都会输出你需要的格式:每个ID对应1到5的序号,按ID和序号排序。

内容的提问来源于stack exchange,提问作者codename_47

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:03:09