在使用Mybatis-Plus框架进行查询时, 碰到了需要查询最大值的情况. 但是截止本文章撰写前, Mybatis-Plus并没有提供直接的查询数据最大值的函数. 本篇文章就来记录下如何实现.
若要顺利阅读本篇文章, 需要你具备如下条件:
一定要注意环境的差异, 考虑不兼容的可能性; 并且具备以上条件. 否则阅读本篇博客可能会给你带来困扰.
我们进行普通查询的时候, 需要用到以下语句:
xxxMapper.selectOne(QueryWrapper(...));
我们只需要分别添加排序( orderByDesc
)和取第1个( limit 1
)就可拿到最大值:
xxxMapper.selectOne(QueryWrapper(...).orderByDesc("排序字段名").last("limit 1"));
拿到最小值只需改为正序排列:
xxxMapper.selectOne(QueryWrapper(...).orderByAsc("排序字段名").last("limit 1"));
搞定.
本文的方法虽然实现了我们的目标. 但是 仅为代码美观 . 实际上这样的查询效率可能不高. 生产环境的项目慎用.