Mysql 分组依据行和联系人行(默认值除外)

Mysql 分组依据行和联系人行(默认值除外),mysql,sql,Mysql,Sql,所需结果: 我希望它按random_id分组,但对于random_id=0,我不希望它分组。 任何建议都将得到考虑 ╔════════╦═══════════╦═══════╗ ║ MSG_ID ║ RANDOM_ID ║ MSG ║ ╠════════╬═══════════╬═══════╣ ║ 1 ║ 22 ║ apple ║ ║ 2 ║ 22 ║ bag ║ ║ 3 ║ 0 ║ cat ║ ║

所需结果:

我希望它按random_id分组,但对于random_id=0,我不希望它分组。 任何建议都将得到考虑

╔════════╦═══════════╦═══════╗
║ MSG_ID ║ RANDOM_ID ║  MSG  ║
╠════════╬═══════════╬═══════╣
║      1 ║        22 ║ apple ║
║      2 ║        22 ║ bag   ║
║      3 ║         0 ║ cat   ║
║      4 ║         0 ║ dog   ║
║      5 ║         0 ║ egg   ║
║      6 ║        21 ║ fish  ║
║      7 ║        21 ║ hen   ║
║      8 ║        20 ║ glass ║
╚════════╩═══════════╩═══════╝
╔═══════════╦═══════════╗
║ RANDOM_ID ║    MSG    ║
╠═══════════╬═══════════╣
║        22 ║ apple bag ║
║         0 ║ cat       ║
║         0 ║ dog       ║
║         0 ║ egg       ║
║        21 ║ fish hen  ║
║        20 ║ glass     ║
╚═══════════╩═══════════╝
Select  random_id as a, 
        (
            Select group_concat( message ORDER BY random_id ASC SEPARATOR ' ')
            from messagemaster 
            where  flag = 0  AND random_id=a
            group by random_id 
            order by random_id 
        ) as msg
from    messagemaster
where   flag = 0
SELECT  Random_ID, GROUP_CONCAT(msg SEPARATOR ' ') Msg
FROM    TableName
WHERE   Random_ID <> 0
GROUP   BY Random_ID
UNION
SELECT  Random_ID, Msg
FROM    TableName
WHERE   Random_ID = 0