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

如何编写MySQL查询实现单表多日期列的列转行?

解决MySQL列转行的查询需求

你要实现的是列转行的效果,不需要用自连接,用UNION ALL就能轻松搞定。假设你的表名为your_table(记得替换成实际表名),执行以下SQL语句即可得到期望结果:

SELECT ID, Name, `Date 1` AS Date
FROM your_table
UNION ALL
SELECT ID, Name, `Date 2` AS Date
FROM your_table
ORDER BY Date, ID; -- 可选:按日期和ID排序,和示例输出顺序一致

说明:

  • UNION ALL用于合并两个查询的结果集,它不会自动去重(这里你的数据没有重复,用它比UNION效率更高)。
  • 第一个查询提取Date 1列的数据,第二个查询提取Date 2列的数据,两者都将日期列重命名为Date,保证结果列名统一。
  • 最后的ORDER BY是可选的,如果需要和示例输出的顺序完全一致,可以加上,先按日期排序,再按ID排序。

如果后续有更多日期列(比如Date 3、Date 4),只需要继续添加UNION ALL + SELECT语句即可,逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:01:47