zoukankan      html  css  js  c++  java
  • sql 中的NULL小问题 ,大bug

    今天在写退款的的SQL的时候遇到一个问题,直接导致之前记录的所有操作日志,清空了,还好自己有看数据的习惯,下面贴上代码

    1     UPDATE TradeUser
    2     SET 
    3       UserScore=@UserScore 
    4       Remark=ISNULL(Remark,'')+' '+@UserName +' 手动取消付款,退还积分'
    5      WHERE UserId=@UserID

    执行这句SQL后,备注直接清空,百思不得其解,找不到原因。其实原因很简单,传入的@UserName是NULL,导致字符串和NULL计算结果为NULL,这个知识点 其实都是知道的,只不过用的时候就忽略了 ,可以改成下面的那样

        UPDATE TradeUser
        SET 
          UserScore=@UserScore
          Remark=ISNULL(Remark,'')+' '+ISNULL(@UserName,'') +' 手动取消付款,退还积分' --这里遇到传入的参数就加上ISNULL()判断,这是一个写代码的习惯问题
         WHERE UserId=@UserID

    这类问题是可以避免的,这是一个程序员思维逻辑是否严谨,工作态度是否端正,自己要对自己开发的东西负责人。有疑虑 要多问的,不然出了问题更丢人

    02  开发是多加验证条件,尽量避免字段值为空的清空出现,尽量减少代码的执行,不需要执行的情况就应该规避掉。

    文章讲的技术点不多,多数都是累赘的叙述,博主表达能力不是很强,不能言简意赅的叙述问题,敬请谅解。

  • 相关阅读:
    查看mysql日志
    Redis配置和常用命令
    任务
    如何让maven 将工程依赖的jar 复制到WEB-INF/lib 目录下
    Tomcat8安装, 安全配置与性能优化(转)
    Web.xml详解(转)
    php精度比较函数bccomp
    php找到字符数组里最左匹配长度的字符(最长公共前缀匹配算法)
    PHP实现curl post和get
    Jquery 跨Dom窗口操作
  • 原文地址:https://www.cnblogs.com/q101301/p/4637799.html
Copyright © 2011-2022 走看看