mysql中校验一条数据中所有字段是否完整

场景说明

    现在有一个简历查询场景,用户填写的简历信息中,除了个别内容是必填的,其余内容都是非必填,现在规定简历中除了必填项之外只要有一项没有填写的就提示待完善。现在需要查询用户的简历信息是否需要完善。

需求拆解

    上面的问题实际上就是查询指定简历记录信息中除了必填字段之外的字段信息是否为空。
    mysql中数据为空,一般是两种表现形式,字段不设置默认值,创建的时候会默认为null,另一种是字段值为空字符串。
    以简历表resume中name字段说明null与空字符串查询的区别
    准备的测试数据:
在这里插入图片描述
    其中第一条name默认值为null,第二条name为一个空字符串,第三条name为两个空字符串。
    查询name为null可以这样写:

SELECT * FROM RESUME WHERE NAME IS NULL

    查询内容:
在这里插入图片描述
    查询name为空字符串(不论几个空字符串):

SELECT * FROM RESUME WHERE NAME =''

    查询结果:
在这里插入图片描述
    判断简历记录中是否填写完整就是校验每个字段是否为null或是空字符串.所以实现方式如下(查询id为1的简历记录信息是否完整,gender和age有默认值故不做处理,仅校验name和content):

SELECT 1 FROM RESUME WHERE id=1 AND NAME IS NULL OR NAME ='' OR content IS NULL OR content ='' LIMIT 1

如果返回1说明该简历需要提示待完善。
    考虑到每个字段需要校验null和空字符串,可以进行优化,缩减判断条件,name和content在表结构中设置默认值为空字符串,所以就不用判断是否为null。优化后sql:

SELECT 1 FROM RESUME WHERE id=1 AND  NAME =''  OR content ='' LIMIT 1

    以上是mysql中校验一条数据中所有字段是否完整的实现方案,如果感觉有帮助欢迎评论区留言和点赞!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卖柴火的小伙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值