基于多列的MySQL条件连接

时间:2017-05-23 16:57:45

标签: mysql

我很难在正确的查询上获取基于多列的输出以及这些列中的条件:

   a  b  c
1  x     x
2  x  x  
3  x

我希望输出结果,根据x在列a,b和c中的位置输出:

1 a,c
2 a,b
3 a

这可以在mysql中做到吗?非常感谢

2 个答案:

答案 0 :(得分:1)

您可以使用CONCAT_WS函数(docs)和一些IF语句。

SELECT tn.ID,
CONCAT_WS(
  ',',
  IF(tn.a='x','a',null),
  IF(tn.b='x','b',null),
  IF(tn.c='x','c',null)
) as result
FROM TableName tn;

答案 1 :(得分:0)

您可以使用IFNULL功能(docs)。例如:

SELECT a, IFNULL(b, c) FROM table_name;

它将针对每种情况选择a,并根据其值(必须为not null)有条件地选择b或c。但是,我担心你不能做更多的事情。