对于不是采用所有字段都是not null的mysql表设计而言,mysql提供了一个<=>操作符。
在oracle中我们的处理方式通常类似:
where a = #{var} or #{var} is null
或者
where a = nvl(#{var},‘ ‘) or nvl(#{var},‘ ‘) = ‘ ‘
在mysql中则是:
where a = ifnull(#{var},‘ ‘) or ifnull(#{var},‘ ‘) = ‘ ‘
或者:
where a= #{var} or #{var} is null。
通过<=>操作符,就无需关心null的问题,在<=>内部,null被当成了普通值进行对待,如下:
where a<=>#{var}
不用进行特殊的处理。
时间: 2024-10-10 00:34:31