首页 新闻 会员 周边 捐助

mybatisplus如何根据数据库里的值写条件语句

0
悬赏园豆:20 [已解决问题] 解决于 2023-02-12 22:18

我有个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如何构造?

每天都要学一点的主页 每天都要学一点 | 初学一级 | 园豆:169
提问于:2023-02-09 11:48
< >
分享
最佳答案
1

何必钻牛角尖呢?
就用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表达式就不合时宜了。

收获园豆:20
楠木大叔 | 老鸟四级 |园豆:2083 | 2023-02-09 22:57

好的

每天都要学一点 | 园豆:169 (初学一级) | 2023-02-12 22:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册