我需要的语句是这样的效果

select * from SHANGPIN WHERE isnull(tzsy,0) = 0 AND (spdm = '000' OR (spdm <> '000' AND spmc = '测试'))

我们用mybatisplus 直接写这样的话

        QueryWrapper<EKehu> wrapper=new QueryWrapper<>();
        wrapper.eq("isnull(tzsy,0)",0);
        wrapper.eq("spdm","000");
        wrapper.or(wp1->wp1.ne("spdm","000").eq("spmc","测试"));
        System.out.println(wrapper.getCustomSqlSegment());

显示的效果是这样的,这就不是我想要的效果
在这里插入图片描述
我需要用and去将这后面的条件括起来

        QueryWrapper<EKehu> wrapper=new QueryWrapper<>();
        wrapper.eq("isnull(tzsy,0)",0);
        wrapper.and(wp->wp.eq("spdm","000").or(wp1->wp1.ne("spdm","000").eq("spmc","测试")));
        System.out.println(wrapper.getCustomSqlSegment());

这样的才是我想要的样子
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐