首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql多列查询

问mysql多列查询
EN

Stack Overflow用户
提问于 2014-02-21 00:23:11
回答 2查看 44关注 0票数 0

我有一个包含100列的表。

碰巧我希望查询只显示具有"value <> 0“的列

因此,不应该显示val =0的列。

有人能帮上忙吗?

EN

回答 2

Stack Overflow用户

发布于 2014-02-21 00:51:02

您可以使用如下所示的查询:

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的行,如果该列不包含0,则为1。

票数 1
EN

Stack Overflow用户

发布于 2014-02-21 01:06:06

不能调整返回的列数。这是由一个投影(您的SELECT块)定义的,一个投影是根据表模式进行计算的。您应该知道希望在投影中返回的列数和类型。

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

不过,返回的生成的投影表的模式必须是静态的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21913672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档