Mysql 列轉行group_concat函數,與行轉列(原創)

來源:互聯網
上載者:User

標籤:

1、正常情況。

SELECT JoinEventIds from nt_mainnum

2、使用group_concat函數

select group_concat(JoinEventIds) from nt_mainnum

3、使用SUBSTRING_INDEX和CROSS JOIN將列裡面的的數字都拆分出來。

方法一(網上查詢的方法):

建配置表:

    CREATE TABLE digits (digit INT(1));    INSERT INTO digits    VALUES        (0),        (1),        (2),        (3),        (4),        (5),        (6),        (7),        (8),        (9);    CREATE TABLE sequence (seq INT(3));    INSERT INTO sequence (        SELECT            D1.digit + D2.digit * 10        FROM            digits D1        CROSS JOIN digits D2    );

配置表sequence的結果為0-99的一列數字:

SQL:

SELECT    SUBSTRING_INDEX(        SUBSTRING_INDEX(JoinEventIds, ‘,‘, seq),        ‘,‘ ,- 1    ) JoinEventIdsFROM    sequenceCROSS JOIN nt_mainnumWHERE    seq BETWEEN 1AND (    SELECT        1 + LENGTH(JoinEventIds) - LENGTH(            REPLACE (JoinEventIds, ‘,‘, ‘‘)        ))

方法二(自己不想建表,圖省事):將sequence替換為SELECT @rownum:[email protected]+1 AS seq FROM (SELECT @rownum:=0) r, nt_mainnum  LIMIT 0,100) ,這張表需要大於100條。

SELECT  SUBSTRING_INDEX(            SUBSTRING_INDEX(JoinEventIds, ‘,‘, seq),            ‘,‘ ,- 1        ) JoinEventIds    FROM        (SELECT @rownum:=@rownum+1 AS seq FROM (SELECT @rownum:=0) r, nt_mainnum  LIMIT 0,100) b    CROSS JOIN nt_mainnum    WHERE        seq BETWEEN 1    AND (        SELECT            1 + LENGTH(JoinEventIds) - LENGTH(REPLACE(JoinEventIds, ‘,‘, ‘‘))) 

結果均為:

Mysql 列轉行group_concat函數,與行轉列(原創)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.