用sql获得指定记录的空段数目和字段名称–实在想不通,这种场景应用在哪

1)表结构如下

现在查询第四条记录 1)demo

  2)查询有几个为null或者‘’的字段,跟预期一样,两个1,说明两个字段为null或者‘’
3)求和吧--得到为空的字段数目
4)查出空字段,的字段名

/*`IF`(expr1,expr2,expr3)三目运算符,参数1,为真,返回参数2,否则返回参数3在这里,参数1为null或者‘‘为真, 我们让他返回1*/select sum( IF(ISNULL(name)||LENGTH(trim(name))<1,1,0) + IF(ISNULL(idCard)||LENGTH(trim(idCard))<1,1,0)+ IF(ISNULL(tel)||LENGTH(trim(tel))<1,1,0) + IF(ISNULL(cardNum)||LENGTH(trim(cardNum))<1,1,0) + IF(ISNULL(bankName)||LENGTH(trim(bankName))<1,1,0) + IF(ISNULL(balance)||LENGTH(trim(balance))<1,1,0) ) as 空字段数目,CONCAT(IF(ISNULL(name)||LENGTH(trim(name))<1,name,,‘‘) , IF(ISNULL(idCard)||LENGTH(trim(idCard))<1,idCard,,‘‘), IF(ISNULL(tel)||LENGTH(trim(tel))<1,tel,‘‘) , IF(ISNULL(cardNum)||LENGTH(trim(cardNum))<1,cardNum,,‘‘) , IF(ISNULL(bankName)||LENGTH(trim(bankName))<1,bankName,,‘‘) , IF(ISNULL(balance)||LENGTH(trim(balance))<1,balance,‘‘) ) as 空字段名from bankinfor where id=4

有没有更好的方法?

相关文章