2014-02-20 101 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 , 例如)。

雖然返回的生成投影表的模式必須是靜態的。