gpt4 book ai didi

mysql - 如何将多个列或表连接成一个?

转载 作者:行者123 更新时间:2023-11-29 01:50:48 24 4
gpt4 key购买 nike

有没有办法以这种方式连接多个列?顺便说一句,即使没有重复项,我也试图获取所有值。

a b c
d e f
g h i

结果

a
b
c
d
e
f
g
h
i

编辑:我试过了

SELECT text1 AS col FROM tabla2 UNION ALL SELECT text2 FROM tabla2 UNION ALL SELECT text3 FROM tabla2

但我没有得到我需要的订单

a
d
g
b
e
h
c
f
i

最佳答案

UNION ALL,也许还有 2 个用户变量来维持顺序。

假设您希望保留每个值,即使重复也是如此。如果您不想重复,只需使用 unionUnion all 不会像 union 那样对性能造成影响,因为 union 必须执行不同的操作。 Union all 不会执行不同的操作,因此您保留了重复项。

现在我知道您想要保留列的顺序...我们使用两个用户变量来跟踪哪一列先出现,第 2 列,第 3 列等等...我将此命名为 ord。然后我使用 RN 来跟踪哪一行排在第一位。但是 row 是无关紧要的,除非子查询被排序并且我不知道要按什么排序;我刚刚选择了 text1。但由于我们必须按这些列排序才能获得正确的行号,因此我们必须对这些表进行子查询。

SELECT col1
FROM (SELECT *
FROM (SELECT text1 as col1, 1 as ord, @rn:=@rn+1 as RN
FROM xtabla2
CROSS JOIN (SELECT @rn:=0) rn
ORDER BY text1) col1
UNION ALL
SELECT *
FROM (SELECT text2, 2, @rn2:=@rn2+1
FROM xtabla2
CROSS JOIN (SELECT @rn2:=0) rn
ORDER BY text2) col2
UNION ALL
SELECT *
FROM (SELECT text3, 3, @rn3:=@rn3+1
FROM xtabla2
CROSS JOIN (SELECT @rn3:=0) rn3
ORDER BY text3) col3
) OneCol
ORDER BY ord, RN

http://rextester.com/KYK54502

关于mysql - 如何将多个列或表连接成一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44270242/

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