MYSQL:如何使用 GROUP_CONCAT 附加 Null 值并使用 groupby 附加分隔符?
MYSQL: How to append Null value using GROUP_CONCAT and Separator using groupby?
如何使用 Group Concat 和 Separator 显示 Null
select sr.aID,
GROUP_CONCAT(p.GENDER SEPARATOR ',') as Gender,
GROUP_CONCAT(sr.FANS SEPARATOR ',') as FA,
from RELATION sr, Person p where RELATION _TYPE = 'FATHER'
and sr.bID= p.ID group by sr.subjektA_ID;
它returns 以下是 FA
的值
1 | MALE, FEMALE | YES, NO
2 | FEMALE, MALE | NO, YES
3 | FEMALE, MALE | YES
4 | FEMALE, MALE | NO
我希望它显示 Null 值,即
3 | FEMALE, MALE | YES, NULL
4 | FEMALE, MALE | NULL, NO
如何同时使用 GROUP Concat 和 Separator 来实现同样的效果
尝试用字符串文字 'NULL'
:
替换那些 NULL
值
SELECT
sr.aID,
GROUP_CONCAT(p.GENDER) AS Gender,
GROUP_CONCAT(COALESCE(sr.FANS, 'NULL')) AS FA
FROM RELATION sr
INNER JOIN Person p
ON sr.bID = p.ID
WHERE
RELATION _TYPE = 'FATHER'
GROUP BY
sr.aID;
GROUP_CONCAT
,像大多数聚合函数一样,忽略 NULL
值。但出于演示目的,您只想查看字符串 'NULL'
,因此上述建议应该有效。
请注意,我还用显式连接替换了您的旧式连接。此外,您应该 select 用于聚合的同一列。
select sr.aID,
GROUP_CONCAT( IFNULL(p.GENDER, 'NULL') ) as Gender,
GROUP_CONCAT( IFNULL(sr.FANS, 'NULL') ) as FA,
from RELATION sr, Person p where RELATION _TYPE = 'FATHER'
and sr.bID= p.ID group by sr.subjektA_ID;
注解:GROUP_CONCAT默认用“,”分隔字段,所以,如果你喜欢可以省略它,IFNULL(列,'default_text'),这将替换所有空值使用您默认选择的一个。
如何使用 Group Concat 和 Separator 显示 Null
select sr.aID,
GROUP_CONCAT(p.GENDER SEPARATOR ',') as Gender,
GROUP_CONCAT(sr.FANS SEPARATOR ',') as FA,
from RELATION sr, Person p where RELATION _TYPE = 'FATHER'
and sr.bID= p.ID group by sr.subjektA_ID;
它returns 以下是 FA
的值1 | MALE, FEMALE | YES, NO
2 | FEMALE, MALE | NO, YES
3 | FEMALE, MALE | YES
4 | FEMALE, MALE | NO
我希望它显示 Null 值,即
3 | FEMALE, MALE | YES, NULL
4 | FEMALE, MALE | NULL, NO
如何同时使用 GROUP Concat 和 Separator 来实现同样的效果
尝试用字符串文字 'NULL'
:
NULL
值
SELECT
sr.aID,
GROUP_CONCAT(p.GENDER) AS Gender,
GROUP_CONCAT(COALESCE(sr.FANS, 'NULL')) AS FA
FROM RELATION sr
INNER JOIN Person p
ON sr.bID = p.ID
WHERE
RELATION _TYPE = 'FATHER'
GROUP BY
sr.aID;
GROUP_CONCAT
,像大多数聚合函数一样,忽略 NULL
值。但出于演示目的,您只想查看字符串 'NULL'
,因此上述建议应该有效。
请注意,我还用显式连接替换了您的旧式连接。此外,您应该 select 用于聚合的同一列。
select sr.aID,
GROUP_CONCAT( IFNULL(p.GENDER, 'NULL') ) as Gender,
GROUP_CONCAT( IFNULL(sr.FANS, 'NULL') ) as FA,
from RELATION sr, Person p where RELATION _TYPE = 'FATHER'
and sr.bID= p.ID group by sr.subjektA_ID;
注解:GROUP_CONCAT默认用“,”分隔字段,所以,如果你喜欢可以省略它,IFNULL(列,'default_text'),这将替换所有空值使用您默认选择的一个。