mybatis 动态查询括号的问题
我想实现一个查询,sql语句如下
select * from user where ( id like '%1%' or name like '%foo%') and active=1
其中id,name可以是动态的,可以为null
我写的是这样的
<select id="selectByUser" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
<where>
<if test="id != null || name !=null">
(
<if test="id != null">
<bind name="id" value="'%' + id + '%'" />
`id` like #{id,jdbcType=INTEGER}
</if>
<if test="name != null">
<bind name="name" value="'%' + name + '%'" />
or `name` like #{name,jdbcType=VARCHAR}
</if>
) and
</if>
active=1
</where>
</select>
可是当id为空的时候就有错误:
select * from user where ( or name like '%foo%' ) and active =1
因为加了括号<where>标签没有去掉'or'关键字请问有什么方法可以实现这个sql功能
吴克的叔叔葛炮
9 years, 2 months ago