mybatis-plus LambdaQueryWrapper条件构造器使用apply查询含有逗号‘,‘分隔的字段

mybatis-plus LambdaQueryWrapper apply自定义SQL条件使用

真实业务开发使用场景

数据库:postgreSQL 开发场景:SpringBoot2.5.7

数据库中数据如下

image-20240719162519537

需求

查找, bingBdNumber字段为422875,要求数据库中bind_bd_number这一栏中只要有422875的就返回. 根据上图查422875需要返回3条数据

image-20240719162709611

代码实现

SQL

SELECT * FROM electronic_rail WHERE '4224875' = ANY(string_to_array(bind_bd_number, ','))

核心代码

// 添加自定义SQL 条件
if (StringUtils.isNotBlank(pageModel.getBindBdNumber())) {
    queryWrapper.apply("{0} = ANY(string_to_array(bind_bd_number, ','))", pageModel.getBindBdNumber());
}

参考蒂埃玛

@Override
public IPage<ElectronicRail> findByPage(ElectronicRailPageModel pageModel) {
     LambdaQueryWrapper<ElectronicRail> queryWrapper = new LambdaQueryWrapper<>();

        IPage<ElectronicRail> page = new Page<>();
        page.setSize(pageModel.getPageSize()); //10
        page.setCurrent(pageModel.getCurrentPage());//1

        // 使用apply定义该业务查询条件
        if (StringUtils.isNotBlank(pageModel.getBindBdNumber())) {
            queryWrapper.apply("{0} = ANY(string_to_array(bind_bd_number, ','))", pageModel.getBindBdNumber());
        }
    
    //其他查询条件
        queryWrapper.eq(StringUtils.isNotBlank(pageModel.getName()), ElectronicRail::getName, pageModel.getName());
        queryWrapper.orderByDesc(ElectronicRail::getUpdateTime);

        return electronicRailMapper.selectPage(page, queryWrapper);
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 22:04:02       172 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 22:04:02       190 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 22:04:02       158 阅读
  4. Python语言-面向对象

    2024-07-21 22:04:02       171 阅读

热门阅读

  1. WebAssembly在前端开发中的创新与应用

    2024-07-21 22:04:02       37 阅读
  2. easyExcel

    easyExcel

    2024-07-21 22:04:02      39 阅读
  3. 什么是等保测评

    2024-07-21 22:04:02       32 阅读
  4. acml可用订阅到起始位姿

    2024-07-21 22:04:02       34 阅读
  5. Windows 12 网页版

    2024-07-21 22:04:02       31 阅读
  6. 网络融合的艺术:Xcode中应用Web服务集成全指南

    2024-07-21 22:04:02       41 阅读
  7. 提示工程的技术与策略分类

    2024-07-21 22:04:02       35 阅读
  8. css font 优化

    2024-07-21 22:04:02       36 阅读
  9. 基于深度学习的金融交易

    2024-07-21 22:04:02       42 阅读
  10. MATLAB中balance函数用法

    2024-07-21 22:04:02       40 阅读
  11. 栈和队列之间有哪些区别

    2024-07-21 22:04:02       37 阅读
  12. python 爬虫技术 第04节 函数和模块

    2024-07-21 22:04:02       36 阅读
  13. 打造安全堡垒:Xcode应用权限管理全解析

    2024-07-21 22:04:02       35 阅读
  14. MSPM0G3507——K210和M0通信(K210给M0发数据)

    2024-07-21 22:04:02       35 阅读