首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将为真的值组合在一起

将为真的值组合在一起
EN

Stack Overflow用户
提问于 2019-04-11 07:43:50
回答 1查看 18关注 0票数 0

所以假设我有一个这样的表,叫做动物,动物有点值:

代码语言:javascript
复制
id   dogs  cats  birds lions 
1     0     1     0      0 
2     1     1     0      0 
3     0     1     0      1
4     0     0     0      1 

我想将位值为1的动物分组在一起

所需输出:

代码语言:javascript
复制
cats
dogs,cats
cats,lions
lions

我想使用GROUP_CONCAT将它们组合在一起,但不知道如何只选择真正的。这只是个想法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-11 07:50:40

GROUP_CONCAT()对此没有用处,它用于连接组中的行之间的列,而不是连接同一行中的列。

您可以使用CONCAT_WS()连接同一行中的值,并使用给定的分隔符(本例中为',')。它只连接非空值,所以您希望用列名替换TRUE值,用NULL替换false值。

代码语言:javascript
复制
SELECT CONCAT_WS(',', 
        IF(dogs, 'dogs', NULL), 
        IF(cats, 'cats', NULL), 
        IF(birds, 'birds', NULL), 
        IF(lions, 'lions', NULL)) AS animals
FROM yourtable

DEMO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55622759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档