MySQL如何检查列列表中的任何值是否为NULL?

时间:2014-01-10 16:03:06

标签: mysql sql

我想在mysql表中选择有NULL值的条目,以便稍后对它们进行更新或删除:

select * from table where q is NULL;

但我有一个相当长的列表,在这种情况下都有一个名为pf_的给定前缀,我想选择任何列为NULL的条目。我可以这样做吗?

select * from table where ANYISNULL(pf_q,pf_w,pf_e,pf_r,pf_t,pf_y,pf_u,pf_i,
                                    pf_o,pf_p,pf_a,pf_s,pf_d,pf_f,pf_g,pf_h,
                                    pf_j,pf_k,pf_l);

除了使用大量OR进行非常长的查询之外,还有任何想法吗?

1 个答案:

答案 0 :(得分:9)

你应该这样做:

select * from table where concat(pf_q,pf_w,pf_e,pf_r,pf_t,pf_y,pf_u,pf_i,
                                pf_o,pf_p,pf_a,pf_s,pf_d,pf_f,pf_g,pf_h,
                                pf_j,pf_k,pf_l) is null;

如果任何值为null,concat将返回null。