Oracle 与 Mysql NULL值,空字符串''的区别

时间:2023-12-26 23:24:19

Oracle(null等同于空字符'')

1.oracle插入空字符串默认替换成null

2.oracle查询(null和被替换的空字符)时使用 is null/is not null

3.使用聚合函数时自动忽略null值

Mysql(null不等同于空字符'')

1.mysql插入null显示为null,插入空字符串显示空

2.null查询用 is null/is not null,空字符''查询用 =''/<>''

3.使用聚合函数时自动忽略null值

mapping.xml:

<if test='desc1!=null '>
    <choose>
        <when test='desc1!="" '>
            and A.DESC1 = #{desc1}
        </when>
        <otherwise>
            and (A.DESC1 is null or A.DESC1 = '')
        </otherwise>
    </choose>
</if>

java逻辑:

if desc1 !=null{
  switch(s):
        case desc1!="":and A.DESC1 = #{desc1}
        default:A.DESC1 is null or A.DESC1 = ''
}else{

}