[英]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.