MySQL - 将两列分成两个不同的行

Posted

技术标签:

【中文标题】MySQL - 将两列分成两个不同的行【英文标题】:MySQL - Split two columns into two different rows 【发布时间】:2018-06-12 19:33:10 【问题描述】:

如果这是一个愚蠢的问题,我不知道要创建这个抱歉。

我有一张桌子,两支球队和总观看,稍后我将在不同的地方使用此信息,所以我的想法将这两列合并为一列但两行不同:

HomeTeam      AwayTeam     Totalwatch 
A              B              100
A              C               90
C              A               80
D              B               70
C              E               50

这个可以吗

Teams          TotalWatch
A                100
B                100
A                 90
C                 90
C                 80
A                 80
D                 70
B                 70
C                 50
E                 50

我有几列,所以它们也会重复。

请注意,我知道concat 在单行中如何与concat 函数一起使用我不知道如何在两行中使用

【问题讨论】:

【参考方案1】:

只需使用UNION ALL:

SELECT * 
FROM(
    SELECT HomeTeam Teams,TotalWatch FROM Your_Table
    UNION ALL
    SELECT AwayTeam,TotalWatch FROM Your_Table
    )D
ORDER BY TotalWatch DESC

【讨论】:

【参考方案2】:

您可以使用UNION ALLORDER BY Totalwatch DESC 来获得按照Totalwatch 排序的结果。

SELECT HomeTeam AS Teams, Totalwatch  FROM YourTable
UNION ALL
SELECT AwayTeam, Totalwatch FROM YourTable
ORDER BY Totalwatch DESC;

【讨论】:

【参考方案3】:

试试这个兄弟.. :)

SELECT HomeTeam,Totalwatch
FROM   YourTable

UNION ALL

SELECT AwayTeam,Totalwatch
FROM   YourTable

【讨论】:

以上是关于MySQL - 将两列分成两个不同的行的主要内容,如果未能解决你的问题,请参考以下文章