pgsql -- if判断

本文探讨了在Mybatis中结合PgSQL进行if判断查询的三种不同情况,详细介绍了每个案例的 dao 层 SQL 实现,并通过一个数据库示例数据来展示它们之间的区别。对于使用Mybatis和PgSQL的开发者来说,理解这些差异至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工具:mybatis+pgsql

详见pgsql官方文档

注意: 以下三种判断查询的结果是不一样的

<if test = "column != null">
<if test = "column != null and column != '' ">
<if test = "column != '' ">

数据库数据如下:

id  username   sex  address  depId  status
1     张三      男    上海     001    1
2     李四      女    上海            1
3     王五      女    上海     002    1

案例1

dao层

User select(String username,String depId); 

sql

<select id = "select"  resultType = "com.test.dto.User">
	select  username,address,sex
	  from  user
	 where status = 1
	   and  username = #{username}
   <if test = "depId != null">
       and  depId = #{depId}
   </if>
</select>

案例2

dao层

List<User> list(String address); 

sql

<select id = "list"  resultType = "com.test.dto.User">
	select  username,address,sex
	  from  user
	 where  sex = '女'  
	<if test = "address != null and address != '' ">
       and  address like '%' || #{address} || '%'
    </if>
</select>

案例3

dao层

List<User> list(String address); 

sql

<select id = "list"  resultType = "com.test.dto.User">
	select  username,address,sex
	  from  user
	 where  sex = '女'  
	<if test = "address != '' ">
       and  address like '%' || #{address} || '%'
    </if>
</select>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值