我很难在正确的查询上获取基于多列的输出以及这些列中的条件:
a b c
1 x x
2 x x
3 x
我希望输出结果,根据x在列a,b和c中的位置输出:
1 a,c
2 a,b
3 a
这可以在mysql中做到吗?非常感谢
答案 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。但是,我担心你不能做更多的事情。