我想在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进行非常长的查询之外,还有任何想法吗?
答案 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。