如何获取包含0值的列名

时间:2015-02-10 10:58:21

标签: mysql

我有一张桌子t1。具有以下价值。

+----+-----+-----+-----+-----+-----+
| t1 | s1  | s2  | s3  | s4  | s5  |
+----+-----+-----+-----+-----+-----+
| 1  |  0  |   1 |  0  | 0   | 2   |
|----|-----|-----|-----|-----|-----|
| 2  |  1  |  0  | 0   | 1   | 2   |
+----+-----+-----+-----+-----+-----+

如何获取列名。其值为0.

1 个答案:

答案 0 :(得分:3)

我认为,您正在尝试获取具有所有行0的列/字段名称,或者其所有值都为0的列/字段名称。例如:在您的情况下为列s3。

获取该列的一种可能方法如下: 您首先找到每列的总和。现在,如果列的所有值都为0,则此列的总和将为零。完成后,使用“if”条件仅返回总和为0的列。如果有多个列,也可以使用“concat_ws”以逗号分隔这些列。所以,这是查询。另外,让我再次画桌子。你绘制的方式有点令人困惑。

您的表名是t1。它有五列s1,s2,s3,s4,s5和总共两行。你希望找到s3,它的所有值都是0.

                        # Table t1 #

s1 s2 s3 s4 s5
 0 1 0 0 1
 1 0 0 1 0

选择concat_ws(',',if(sum(s1)= 0,'s1',null),if(sum(s2)= 0,'s2',null),if(sum(s3) )= 0,'s3',null),if(sum(s4)= 0,'s4',null),if(sum(s5)= 0,'s5',null))为t1的empty_column;