mysql字段多个值,mybatis/mybatis-plus匹配查询

mysql中有一个字段是字符串类型的,category字段值有多个用逗号分割的,例如:娱乐,时尚美妆,美食 。现在想实现这么一个功能, 前端传参 字符串,美食,娱乐。现在想在mybatis的xml中实现,查询,能查到category只要包含美食或者娱乐的数据行。

数据如下示例,category字段中有多个值,country字段中只有一个值

Mybatis  xml 查询如下:

 <where><if test="sex!= null and sex!=''">and sex= #{sex}</if><if test="country != null and country != ''">AND country IN<foreach item="item" index="index" collection="country.split(',')" open="(" separator="," close=")">#{item}</foreach></if><if test="category != null and category != ''">and<foreach item="item" index="index" collection="category.split(',')" open="(" separator="OR" close=")">FIND_IN_SET(#{item}, category) > 0</foreach></if></where>

Mybatis-plus中实现:

 QueryWrapper<对象> lqw = new QueryWrapper<>();if (StringUtils.isNotEmpty(paramObj.getCountry())) {String[] split = paramObj.getCountry().split(",");List<String> countryList = Arrays.asList(split);lqw.in("country", countryList);}if (StringUtils.isNotEmpty(paramObj.getCategory())) {String[] split = paramObj.getCategory().split(",");StringBuilder sb = new StringBuilder();sb.append("(");for(int i = 0; i< split.length; i++){String catgory = split[i];if(i == split.length -1){sb.append("FIND_IN_SET('" + catgory + "', category) > 0").append(")");}else{sb.append("FIND_IN_SET('" + catgory + "', category) > 0").append(" or ");}}lqw.apply(sb.toString());}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试 -- Selenium常用API全面解答(java)

写在前面 // 如果文章有问题的地方, 欢迎评论区或者私信指正 目录 什么是Selenium 一个简单的用例 元素定位 id定位 xpath定位 name定位 tag name 定位和class name 定位 操作元素 click send_keys submit text getAttribute 添加等待 显示等待 隐式等待 显示等…

【wubuntu】披着Win11皮肤主题的Ubuntu系统

wubuntu - 一款外观类似于 Windows 的 Linux 操作系统&#xff0c;没有任何硬件限制。以下是官方的描述 Wubuntu is an operating system based on Ubuntu LTS that has a similar appearance to Windows using the open-source themes. Wubuntu also comes with a set of adva…

SpringBoot打印日志、控制输出格式、存储日志到文件

在Spring Boot中&#xff0c;使用logback-spring.xml文件来配置日志输出格式和存储到文件。 打开src/main/resources目录下的application.properties或application.yml文件&#xff0c;并添加以下配置来启用Spring Boot的日志功能&#xff1a; # application.propertiesloggi…

Prism:打造WPF项目的MVVM之选,简化开发流程、提高可维护性

概述&#xff1a;探索WPF开发新境界&#xff0c;借助Prism MVVM库&#xff0c;实现模块化、可维护的项目。强大的命令系统、松耦合通信、内置导航&#xff0c;让您的开发更高效、更流畅 在WPF开发中&#xff0c;一个优秀的MVVM库是Prism。以下是Prism的优点以及基本应用示例&a…

5.80 BCC工具之tcpconnect.py解读

一,工具简介 tcpconnect工具追踪执行活动TCP连接的内核函数(例如,通过connect()系统调用;accept()是被动连接)。 详细地说,tcpconnect通过钩住内核中的tcp_v4_connect和/或tcp_v6_connect函数来工作,这些函数是在尝试建立TCP连接时被调用的。当这些函数被调用时,tcpc…

Spring Boot(七十一):整合RateLimiter实现接口限流

1 简介 RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证。如果必要的话,每个acquire() 会阻塞当前线程直到许可证可用后获取该许可证。一旦获取到许可证,不需要再释放许可证。 RateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率…

JavaScript 权威指南第七版(GPT 重译)(二)

第四章&#xff1a;表达式和运算符 本章记录了 JavaScript 表达式以及构建许多这些表达式的运算符。表达式 是 JavaScript 的短语&#xff0c;可以 评估 以产生一个值。在程序中直接嵌入的常量是一种非常简单的表达式。变量名也是一个简单表达式&#xff0c;它评估为分配给该变…

2024 Mazing 3 中文版新功能介绍Windows and macOS

iMazing 3中文版(ios设备管理软件)是一款管理苹果设备的软件&#xff0c; Windows 平台上的一款帮助用户管理 IOS 手机的应用程序。iMazing中文版与苹果设备连接后&#xff0c;可以轻松传输文件&#xff0c;浏览保存信息等&#xff0c;软件功能非常强大&#xff0c;界面简洁明晰…

springboot 单元测试

Spring Boot 单元测试是确保代码质量的重要部分&#xff0c;它允许我们在不实际启动整个应用的情况下测试我们的代码。在Spring Boot中&#xff0c;我们通常使用Spring Test模块和JUnit测试框架来编写单元测试。以下是一个简单的Spring Boot单元测试的详细代码介绍&#xff1a;…

AI学习笔记

1. **基础知识学习&#xff1a;** - 学习AI的基础概念&#xff0c;例如机器学习、深度学习、神经网络等。 - 了解常用的AI算法和技术&#xff0c;例如监督学习、无监督学习、强化学习等。 2. **编程语言和工具&#xff1a;** - 掌握Python编程语言&#xff0c;它是AI…

大厂面试--介绍下webpack的整个生命周期?

Webpack 的运行流程是一个串行的过程&#xff0c;从启动到结束会以此执行以下流程 初始化参数 从配置文件和Shell语句中读取与合并参数&#xff0c;得出最终的参数&#xff1b;开始编译 用上一步得到的参数初始化Compiler对象&#xff0c;加载所有配置的插件&#xff0c;执行对…

leetcode 402.移掉k位数字

暴力的话我只能优化到这里了&#xff0c;也就是只能过31个样例&#xff0c;思路就是对于每一位字符&#xff0c;如果当前的字符小于下一个字符&#xff0c;那么就加进去结果&#xff0c;否则就是需要删除的字符&#xff0c;然后次数。 class Solution { public:string removeK…

【运维】MacOS Wifi热点设置

目录 打开热点 配置共享网段 打开热点 打开macOS设置&#xff0c;进入通用->共享 点击如下图标进行配置&#xff0c; 会进入如下界面&#xff08;⚠️目前是打开共享状态&#xff0c;无法修改配置&#xff0c;只有在未打开状态才能进入配置&#xff09; 配置完成后&#x…

2024.3.23

具体是哪些参数 每个点是如何投票的 删除那里不懂 是先给了&#xff0c;再重新分组&#xff0c;具体怎么再重新分组 聚的簇 真实的标签 为什么没有PI 加上其他的 基因调控网络

【前端寻宝之路】学习和总结有无序列表的实现和样式修改

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-WuZk6y8cqVpDsE8W {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

深度学习之本地部署大模型ChatGLM3-6B【大模型】【报错】

文章目录 0.前言1.模型下载2.配置环境2.1 下载项目文件2.2 配置环境 3.开始推理4.总结 0.前言 本博客将介绍ChatGLM3-6B大模型在Ubuntu上的本地部署教程 1.模型下载 由于毛毛张的服务器服务无法科学上网&#xff0c;所以模型的相关文件必须现在本地下载好&#xff0c;再上传到…

Zookeeper详解(zk)

文章目录 Zookeeper 概念ZooKeeper的应用场景使用场景zk的原理ZooKeeper、Nacos、Eureka 和 Consul区别Zookeeper的数据结构zk集群脑裂如何解决ZAB 协议假如注册中心挂了&#xff0c;消费者还能调⽤服务吗&#xff0c;用什么调用的dubbo注册中心为什么选择 Zookeeper关于zookee…

【C语言】数据在内存中的存储(包含大小端字节序问题)~

一、前言 我们在刚开始学习C语言的时候&#xff0c;就接触到了很多数据的不同类型。我们也知道&#xff0c;数据是存储在一块内存空间的&#xff0c;且我们只知道数据的类型决定着&#xff0c;该数据在内存中所占内存空间的大小&#xff0c;且超过一个字节的数据在内存中存储的…

HTTP --- 上

目录 1. HTTP协议 2. 认识URL 2.1. URL中的四个主要字段 2.2. URL Encode && URL Decode 3. HTTP 协议格式 3.1. 快速构建 HTTP 请求和响应的报文格式 3.1.1. HTTP 请求格式 3.1.2. HTTP 响应格式 3.1.3. 关于 HTTP 请求 && 响应的宏观理解 3.2. 实现…

SOPHON算能服务器SDK环境配置和相关库安装

目录 1 SDK大包下载 2 安装libsophon 2.1 安装依赖 1.2 安装libsophon 2 安装 sophon-mw 参考文献&#xff1a; 1 SDK大包下载 首先需要根据之前的博客&#xff0c;下载SDK大包&#xff1a;SOPHON算能科技新版SDK环境配置以及C demo使用过程_sophon sdk yolo-CSDN博客 …