mybatis 数据库字段为空or为空串 忽略条件过滤, 不为空且不为空串时才需nameParam过滤条件

name未配置视为不考虑name条件

select * from user where (( (ISNULL(name)) OR (name='') ) OR name = #{user.nameParam} )

三个or语句 推荐这个

select * from user where ISNULL(name) OR name='' OR name = #{user.nameParam}

sql 复制代码
select * from user where ISNULL(name) OR name=''
<if test="user.nameParam != null and user.nameParam !=''">
OR name = #{user.nameParam}
</if>

数据库的name字段为空或为空字符串 ,nameParam 无论有无值都可以匹配到

数据库的name字段不为空也不为空字符串, 就要用nameParam匹配了(传参nameParam不为空, 和数据库的不为空的匹配; 传参nameParam为空, 数据库的为空的匹配, 即不考虑name条件的场景)

相关推荐
l1t11 小时前
DeepSeek 4.1总结的Tom Lane 谈塑造 Postgres 三十年历程的架构决策
开发语言·数据库·postgresql·架构
星云API|微信接口开发12 小时前
企业微信二次开发实战笔记:如何用在线调试快速验证接口功能
数据库·笔记·企业微信
阿维的博客日记17 小时前
Example 类全场景实战指南
java·mybatis
隔窗听雨眠18 小时前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
samson_www18 小时前
Oracle数据泵拷贝表空间
数据库·dba
呆萌很19 小时前
MySQL 8.4 LTS 完整安装教程
数据库·mysql
天空'之城19 小时前
单片机基础核心知识点汇总(三十三)
数据库·单片机·嵌入式硬件
爱吃苹果的日记本21 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#
张小姐的猫21 小时前
【AI大模型接入SDK】 —— Gemini接入封装
android·数据结构·数据库·c++·人工智能·python