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

如何在MySQL中根据记录整数值生成重复行的SELECT结果?

MySQL根据count值生成多行结果的解决方案

方法一:使用递归CTE(MySQL 8.0+推荐)

这是最灵活的方式,适合MySQL 8.0及以上版本,无需额外创建表。通过递归公共表表达式(CTE)自动生成对应行数:

WITH RECURSIVE cte AS (
    -- 锚点:初始化每个letter的起始数字为1
    SELECT letter, 1 AS n
    FROM your_table_name
    UNION ALL
    -- 递归:每次数字加1,直到不超过对应count值
    SELECT cte.letter, cte.n + 1
    FROM cte
    JOIN your_table_name t ON cte.letter = t.letter
    WHERE cte.n < t.count
)
-- 输出结果并重命名列
SELECT letter AS column1, n AS column2
FROM cte
ORDER BY letter, n;

把代码里的your_table_name替换成你实际的表名即可,执行后就能得到目标展开结果。

方法二:使用数字辅助表(MySQL 5.x兼容)

如果你的MySQL版本低于8.0,不支持递归CTE,可以先创建一个包含连续数字的辅助表,再关联查询:

-- 1. 创建数字表,插入足够覆盖最大count值的数字(这里最大是5)
CREATE TABLE numbers (n INT);
INSERT INTO numbers VALUES (1), (2), (3), (4), (5);

-- 2. 关联原表查询
SELECT t.letter AS column1, num.n AS column2
FROM your_table_name t
JOIN numbers num ON num.n <= t.count
ORDER BY t.letter, num.n;

后续如果有更大的count值,只需往numbers表插入更多数字即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 14:22:09