mybatis数据库查询

1、使用 OR 条件查询 可以替换成SQL的IN条件(查询多条记录字段存一个值)

sql 复制代码
queryWrapper.and(!CollectionUtils.isEmpty(req.getWorkshopCodes()), wrapper -> {
            for (String paramType : req.getWorkshopCodes()) {
                wrapper.or().eq(DeviceShiftInfo::getWorkshopCode, paramType);
            }
        });
SQL:  (workshop_code = '测试1'	OR workshop_code = '测试2')
      queryWrapper.in(!CollectionUtils.isEmpty(req.getWorkshopCodes()),DeviceShiftInfo::getWorkshopCode,req.getWorkshopCodes())            
 SQ:workshop_code IN('测试1','测试2')

2、数据库存的是逗号分隔的字符串(存的是测试1,测试2)查询的值存在性

sql 复制代码
queryWrapper.and(!CollectionUtils.isEmpty(req.getWorkshopCodes()), wrapper -> {
            for (String paramType : req.getWorkshopCodes()) {
                wrapper.or()
                        .apply("FIND_IN_SET({0}, workshop_code)", paramType);
            }
        });
SQL:WHERE	((FIND_IN_SET('1', workshop_code) OR FIND_IN_SET('2', workshop_code)))

3、模糊查询

sql 复制代码
queryWrapper.and(!CollectionUtils.isEmpty(req.getWorkshopCodes()), wrapper -> {
            for (String paramType : req.getWorkshopCodes()) {
                wrapper.or().like(DeviceShiftInfo::getWorkshopCode, paramType);
            }
        });
SQL: WHERE ((workshop_code LIKE '%1%' OR workshop_code LIKE '%2%'))

4、数据库存的是数组

假如库里存数组
JSON_OVERLAPS() 是 MySQL 8.0.17 及以上版本引入的一个函数,用于判断两个 JSON 文档是否存在重叠(overlap)的元素。它常用于比较两个 JSON 数组是否包含至少一个相同的值

sql 复制代码
WHERE 	((JSON_OVERLAPS(remark,	'["1","2"]'))) 只要数据库字段的数组存在查询集合的值则就会被返回

建议:

  • 确认数据库实际存储格式:先检查数据库字段的实际存储值
  • 如果存的是单个值:用方法1(OR条件)
  • 如果存的是逗号分隔:用方法2(FIND_IN_SET)
  • 如果需要模糊匹配:用方法3(LIKE查询)
相关推荐
城数派1 分钟前
2000-2025年我国省市县三级逐8天日间地表温度数据(Shp/Excel格式)
数据库·arcgis·信息可视化·数据分析·excel
AC赳赳老秦5 分钟前
OpenClaw text-translate技能:多语言批量翻译,解决跨境工作沟通难题
大数据·运维·数据库·人工智能·python·deepseek·openclaw
AI应用实战 | RE21 分钟前
014、索引高级实战:当单一向量库不够用的时候
数据库·人工智能·langchain
ffqws_21 分钟前
Spring Boot入门:通过简单的注册功能串联Controller,Service,Mapper。(含有数据库建立,连接,及一些关键注解的讲解)
数据库·spring boot·后端
清水白石00833 分钟前
《Python 架构师的自动化哲学:从基础语法到企业级作业调度系统与 Airflow 止损实战》
数据库·python·自动化
阿华田51237 分钟前
MySQL性能优化大全
数据库·mysql·性能优化
kaico201844 分钟前
python操作数据库
开发语言·数据库·python
被摘下的星星44 分钟前
MySQL 别名使用规则详解
数据库·mysql
墨着染霜华1 小时前
MySQL 重复数据删除语句
数据库·mysql
ego.iblacat1 小时前
PostgreSQL 数据库
数据库·postgresql