当前位置: 首页 > article >正文

mybatis与concat实现模糊查询、mybatis中模糊查询concat传入参数为空时的解决方法

文章目录


在mybatis中,一般模糊查询like习惯用concat进行拼接,但是当传入的参数为空时,查询不出数据。

那是因为concat中,若传入参数为null, 则返回null。
在这里插入图片描述

以下整理mybatis中like模糊查询的写法

<select id="findByKeyword" resultMap="BaseResultMap">
    select * from user
    <where>
	    1=1
	    <if test="keyword!=null and keyword!=''">
	        AND user_name like CONCAT('%',#{keyword},'%')
	    </if>
    </where>
</select>

因为keyword可能为null, 所以先在外层对keyword参数进行判空处理。

或者通过ifnull函数对参数进行一下判断,若传入参数为null,则转换为空字符串

<select id="findByKeyword" resultMap="BaseResultMap">
    select * from user
    where  user_name like CONCAT('%',ifnull(#{keyword},''),'%')
</select>

http://www.kler.cn/a/303468.html

相关文章:

  • 机器学习——损失函数、代价函数、KL散度
  • 10款PDF翻译工具的探索之旅:我的使用经历与工具特色!!
  • 前端Cypress自动化测试全网详解
  • 深入剖析【C++继承】:单一继承与多重继承的策略与实践,解锁代码复用和多态的编程精髓,迈向高级C++编程之旅
  • 红日靶机(七)笔记
  • Typescript类型运算符、关键字以及内置高级类型
  • nacos安装使用调优及面试题分享
  • Apple发布会都有哪些亮点?如何在苹果手机和电脑上录制屏幕?
  • MATLAB默认工作路径修改
  • 串口通信数据包介绍和包结构定义实例
  • 【Echarts】vue3打开echarts的正确方式
  • real, dimension(3) :: rho1 和 real :: rho1(3) 的区别
  • C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(1)
  • element表格合并列数据相同合并单元格
  • 【Flutter 面试题】 无需上下文进行路由跳转原理是怎么样的
  • Python用MarkovRNN马尔可夫递归神经网络建模序列数据t-SNE可视化研究
  • 医疗报销|基于springboot的医疗报销系统设计与实现(附项目源码+论文+数据库)
  • RocketMQ 集群搭建详细指南
  • F12抓包10:UI自动化 - Elements(元素)定位页面元素
  • 【devops】devops-git之git分支与标签使用
  • Kubernetes 容器与镜像管理
  • 五、Django 路由配置
  • 如何编写ChatGPT提示词
  • LabVIEW中EPICS客户端/服务端的测试
  • 数据库系统概论(3,4)
  • 【网络安全】漏洞挖掘之会话管理缺陷