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条件的场景)

相关推荐
lixora20 小时前
银河麒麟高级服务器操作系统(ADM64 版)V10(SP1)搭建 Oracle 19c RAC
数据库
郝学胜-神的一滴20 小时前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
哲Zheᗜe༘20 小时前
了解学习MySQL数据库基础
数据库·学习·mysql
Miqiuha20 小时前
sql的表join怎么学?
数据库·sql
TiAmo zhang20 小时前
调查问卷管理系统开发 │ 系统功能概述
数据库·sqlserver
problc21 小时前
PostgreSQL pg_trgm中文模糊匹配优化技巧
数据库·postgresql
我真的是大笨蛋21 小时前
Redis的String详解
java·数据库·spring boot·redis·spring·缓存
lwprain21 小时前
图数据库neo4j desktop2.0初探
数据库·neo4j
先鱼鲨生21 小时前
【MySQL】认识数据库以及MySQL安装
数据库·mysql
周杰伦_Jay1 天前
【终端使用MySQL】MySQL 数据库核心操作全解析:从入门到性能优化
数据库·mysql·性能优化