簡體   English   中英

MySQL GROUP_CONCAT並翻轉兩行

[英]MySQL GROUP_CONCAT and flip two rows in one

我有桌子

id | industry_id | type | key
1        1           0    word1
2        1           1    word2
3        1           0    word3
4        1           1    word4
5        2           0    word5
6        2           1    hello
7        2           0    world

結果我需要得到桌子

industry_id | title       | description
1           | word1 word3 | word2 word4
2           | word5 world | hello

這意味着所有類型為0的單詞都將變為標題,而類型1將為描述

現在,我幾乎可以得到查詢所需要的內容(但每個行業仍然可以獲得2條記錄)

SELECT industry_id, type, GROUP_CONCAT(`key` SEPARATOR ' ') AS TEXT FROM table GROUP BY industry_id, type

嘗試這樣:

SELECT industry_id, type, 
  GROUP_CONCAT(if(type = 0,key,'') SEPARATOR ' ') AS title,
GROUP_CONCAT(if(type = 1,key,'') SEPARATOR ' ') AS description
   FROM table GROUP BY industry_id, type
SELECT industry_id
     , MAX(CASE WHEN type = 0 THEN text END) title
     , MAX(CASE WHEN type = 1 THEN text END) description
  FROM
     ( SELECT industry_id
            , type
            , GROUP_CONCAT(`key` SEPARATOR ' ') TEXT 
         FROM my_table 
        GROUP 
           BY industry_id
            , type
     ) x
 GROUP
    BY industry_id;

考慮重命名您的key列!

您按行業ID進行分組industry_id, type這樣您將獲得4行,每個行業ID分別獲得2行

SELECT industry_id, 
GROUP_CONCAT(CASE WHEN `type`=0 THEN `key` END SEPARATOR ' ') AS title,
GROUP_CONCAT(CASE WHEN `type`=1 THEN `key` END SEPARATOR ' ') AS description
FROM Table1 
GROUP BY industry_id

見小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM