一、说明
if元素 是简单的条件判断逻辑,满足指定条件时追加 if元素内的SQL,类似于Java 中的 if语句
if 标签是我们最常使用的。 在查询、删除、更新的时候很可能会使用到。 必须结合 test 属性联合使用
二、语法结构
<select ... >
SQL语句
<if test="条件表达式">
SQL语句2
</if>
</select>
三、栗子
接口
/**
* 根据用户名或者手机号查询
*/
public User findUserByIf(@Param("name") String name, @Param("phone") String phone);
UserMapper.xml
<select id="findUserByIf" resultType="User">
SELECT * FROM user WHERE 1=1
<if test="name!=null and name!=''">
AND name LIKE CONCAT(CONCAT('%', #{user.name}),'%')
</if>
<if test="phone !=null and phone !=''">
AND phone=#{phone}
</if>
</select>
问题
如果其中有一个条件不传,这个时候sql语句就变成下面这个样子 直接报错
SELECT *
FROM user
WHERE 1=1 AND name LIKE '%admin%' AND phone=
网友评论