2014-02-20 6 views
0

У меня есть таблица со 100 столбцами.mysql-запрос в несколько столбцов

Случается, что я хочу, чтобы запрос, чтобы показать только те столбцы, которые имеют «значение <> 0»

So столбец, который имеет вал = 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 , например).

Схема возвращенной таблицы проектирования должна быть неподвижной.

Смежные вопросы