选择已过滤的多个字段,其中值为“null”

时间:2013-09-05 13:42:11

标签: mysql sql

我的MYSQL数据库是这样的,


id    field_1   field_2    field_3   field_4  - - - - - - - - -  field_120
1     hello     hi         null       again                       null              
2     stack     bad        good       null                        null
"     bye       null       null       null                        null

此表是一般说明,

id是自动递增,所有字段都是相同的数据类型,我在此表中有大约1000行,

我想验证所有客户未使用的字段(field_1,field_2,....),

我尝试使用NULLIF语句,但它没有成功,任何人都可以请求帮助,

1 个答案:

答案 0 :(得分:0)

这是你的意思吗?

SELECT
    SUM(IF(`field_1` IS NOT NULL, 1, 0)) as `field_1_has_non_null`,
    SUM(IF(`field_2` IS NOT NULL, 1, 0)) as `field_2_has_non_null`,
    SUM(IF(`field_3` IS NOT NULL, 1, 0)) as `field_3_has_non_null`,
    ...
    SUM(IF(`field_118` IS NOT NULL, 1, 0)) as `field_118_has_non_null`,
    SUM(IF(`field_119` IS NOT NULL, 1, 0)) as `field_119_has_non_null`,
    SUM(IF(`field_120` IS NOT NULL, 1, 0)) as `field_120_has_non_null`,
FROM
    `table`

如果field_1_has_non_null大于0,则在field1中找到非NULL值。
如果field_2_has_non_null大于0,则在field2中找到非NULL值。