解决一个使用QueryWrapper.apply使用FIND_IN_SET的列名是字符串无法查询到结果的问题

作者在设计数据库时遇到租户ID多租户问题,需用FIND_IN_SET代替LIKE进行查询。起初使用QueryWrapper的apply方法遇到列名问题,通过调整参数和思维转换,最终找到解决方案,无需写Mapper。
摘要由CSDN通过智能技术生成

由于我再设计数据库的时候将用户的租户id设置为了可以有多个租户的原因,所以用户表不能通过简单的mybaits plus的租户筛选去实现,所以在列表查询的时候需要使用FIND_IN_SET,最先考虑使用like,但是后来想了想like存在很多问题,可能把不属于这个租户的用户给查询来了,于是就使用FIND_IN_SET来查询,但是QueryWrapper没有相关封装,就使用apply

起初

我的sql语句是

queryWrapper.apply("FIND_IN_SET({0},{1})",tenantId,"tenant_id");

发现在查询的时候后面替换的列名成了字符串查询不到想要的结果

而我这边又想偷懒使用这个实现,不想写mapper,于是我想到了使用``,但是也没有用

最后我脑袋疯狂运转下,想到了如果我只是替换一个呢?另一个写在与sql语句里面不就行了,最后居然真的好了,哈哈哈。果然还是得转转脑子!

 queryWrapper.apply("FIND_IN_SET({0},tenant_id)",tenantId);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值