gpt4 book ai didi

mysql - 获取多列的值,每一列都在它自己的行上

转载 作者:行者123 更新时间:2023-11-29 02:39:28 25 4
gpt4 key购买 nike

我有一个包含 3 个值的表:

id | name | v1   | v2   | v3 
---+------+------+------+---
1 | John | 6 | null | 7
2 | Jack | null | 5 | 9

有没有一种简单的方法可以从 v1v2v3 中获取不同的值,每个值都在它自己的行上,最好没有 空的?所以结果是:

id | name | value
---+------+------
1 | John | 6
1 | John | 7
2 | Jack | 5
2 | Jack | 9

我想出的唯一查询是一个有 3 个子查询的查询,所以也许有更好的方法来做到这一点:

SELECT id, name, value 
FROM (
(SELECT id, name, v1 value FROM table WHERE v1 IS NOT NULL)
UNION ALL
(SELECT id, name, v2 value FROM table WHERE v2 IS NOT NULL)
UNION ALL
(SELECT id, name, v3 value FROM table WHERE v3 IS NOT NULL)
) V
GROUP BY id, name, value

最佳答案

您不需要子查询和分组 - 只需 UNION ALL 就足够了

SELECT id, name, v1 value FROM table WHERE v1 IS NOT NULL
UNION ALL
SELECT id, name, v2 value FROM table WHERE v2 IS NOT NULL
UNION ALL
SELECT id, name, v3 value FROM table WHERE v3 IS NOT NULL

关于mysql - 获取多列的值,每一列都在它自己的行上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55866802/

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