我有个sql语句
<where>
<if test="idSchool!=null">
and idSchool=#{idSchool}
</if>
<if test="flag!=null">
and isnull(tjgr.zongjian,0)=#{flag}
</if>
</where>
上面的idSchool条件我可以这样写
queryWrapper.eq(idSchool!=null,"idSchool",idSchool);
但下面的isnull(tjgr.zongjian,0)=#{flag}用queryWrapper如何构造?
何必钻牛角尖呢?
就用sql也挺好啊。
我猜想作者是使用的sqlserer,它的isnull语法
SQL Server中的isnull()函数:
isnull(value1,value2)
1、value1与value2的数据类型必须一致。
2、如果value1的值不为null,结果返回value1。
3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。
这种复杂条件查询语句就用sql,mybatis-plus 本来就支持直接字面量。
在实际项目中,多表联查的复杂语句,我们都是直接用sql,这种场景用lamda表达式就不合时宜了。
好的