mysql返回某行中不为0的列的名称

时间:2014-03-08 19:40:56

标签: mysql select

您好我有一个如下所示的表:

id | PS0101 | PS0102 | PS0103 |
1  |    1   |    0   |    2   |
2  |    3   |    0   |    0   |
3  |    0   |    0   |    0   |
4  |    0   |    1   |    0   |

使用mysql,我试图为一个指定的用户返回大于0的列的名称。

这个示例mysql代码非常错误,但仅仅是为了一个想法:

SELECT column HAVING column > 0 WHERE id = 1;

这将返回PS0101和PS0103

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我理解你想要的东西,我认为这样做。

SELECT 
CASE WHEN PS0101>0 THEN 'PS0101' ELSE '' END AS column1, 
CASE WHEN PS0102>0 THEN 'PS0102' ELSE '' END AS column2,
CASE WHEN PS0103>0 THEN 'PS0103' ELSE '' END AS column3
FROM table_name
WHERE id = 1;

这是一个有效的fiddle