2014-02-20 65 views
0

我有一个100列的表。mysql查询到多列

它发生,我希望查询只显示有“价值<> 0”

所以有VAL = 0不应显示列的列。

任何人都可以用这个

+4

请告诉我们你试过了什么。一些代码和期望的结果会很好,所以我们可以帮助你。 – hanleyhansen

+0

你知道列名吗?你有他们在一个列表或某个地方? –

回答

1

帮助您可以像查询以下内容:

SELECT FLOOR(SUM(IF(column1 IN (0),0,1))/COUNT(*)),FLOOR(SUM(IF(column2 IN (0),0,1))/COUNT(*)),...,FLOOR(SUM(IF(column100 IN (0),0,1))/COUNT(*)) FROM table_name

这会给你的列值,如果= 0列中包含0和1如果行列不包含0

1

您无法调整返回的列数。这由投影(您的SELECT块)定义,并根据表模式评估投影。预计您知道投影中要返回的列数和类型。

正如前面的用户所提到的,可以使用函数或case语句来更改列中的值,或者可以限制WHERE子句返回的行(如果某些值为<> 0 , 例如)。

虽然返回的生成投影表的模式必须是静态的。