mybatis 语句中where 后边要跟必要条件和多个选择条件处理方法
2017-10-15 21:20
441 查看
<select id="serchRelation" resultType="Relation">
SELECT
r.node_one as nodeOne,
r.node_two as nodeTwo,
r.relation as relation,
r.is_delete as isDelete,
r.create_time as createTime,
n.model_name as nodeTwoName
FROM relation r LEFT JOIN node n on r.node_two = n.id
<!-- and或or 只会去掉多余的,不会自动加上 -->
<trim prefix="WHERE" prefixOverrides="AND | OR">
<if test="@com.zyw.util.TmStringUtils@isNotEmpty(keyWord) and @com.zyw.util.TmStringUtils@isNumber(keyWord)">
r.node_two = #{keyWord} OR
</if>
<if test="@com.zyw.util.TmStringUtils@isNotEmpty(keyWord)">
n.model_name LIKE '%${keyWord}%' OR
</if>
<if test="@com.zyw.util.TmStringUtils@isNotEmpty(keyWord)">
r.relation LIKE '%${keyWord}%'
</if>
</trim>
group by r.node_one,r.node_two
having r.is_delete = 0 and r.node_one=#{nodeId1}
</select>
选择条件可以用<trim>标签,必要条件,可以group by 分组之后 写在 having 后边
SELECT
r.node_one as nodeOne,
r.node_two as nodeTwo,
r.relation as relation,
r.is_delete as isDelete,
r.create_time as createTime,
n.model_name as nodeTwoName
FROM relation r LEFT JOIN node n on r.node_two = n.id
<!-- and或or 只会去掉多余的,不会自动加上 -->
<trim prefix="WHERE" prefixOverrides="AND | OR">
<if test="@com.zyw.util.TmStringUtils@isNotEmpty(keyWord) and @com.zyw.util.TmStringUtils@isNumber(keyWord)">
r.node_two = #{keyWord} OR
</if>
<if test="@com.zyw.util.TmStringUtils@isNotEmpty(keyWord)">
n.model_name LIKE '%${keyWord}%' OR
</if>
<if test="@com.zyw.util.TmStringUtils@isNotEmpty(keyWord)">
r.relation LIKE '%${keyWord}%'
</if>
</trim>
group by r.node_one,r.node_two
having r.is_delete = 0 and r.node_one=#{nodeId1}
</select>
选择条件可以用<trim>标签,必要条件,可以group by 分组之后 写在 having 后边
相关文章推荐
- Python中条件选择和循环语句使用方法介绍
- mybatis 脚本处理语句(条件查询,批量增删改查)
- Java 学习日志 2.1 if 条件选择语句(if switch 四种方法检验成绩状况)
- Python中条件选择和循环语句使用方法介绍
- Python中条件选择和循环语句使用方法介绍
- C# -- lambda表达式转为where条件sql语句的方法2
- yii框架中findall方法取数据使用总结,包括select各种条件,where条件,order by条件,limit限制以及使用单纯sql语句query时占位符的使用等
- 对传入where条件的sql语句进行参数化处理
- Mybatis 不确定条件查询(动态语句where和if)借助实体类封装参数
- yii2:多条件多where条件下碰到between时,between语句如何处理呢?
- sql的where条件中包含中文,查询不出来的处理方法
- C# -- lambda表达式转为where条件sql语句的方法
- sql语句中当条件的数量非常大时where...in条件子句用什么更好的方法代替?
- 当某个参数不传入值时,查询语句中where后面不加相应条件处理
- 避免把判断处理放入 WHERE 条件
- Oracle where条件为In并且为拼接SQL时 C#中的处理方法
- MyBatis两种执行XXXMapper.xml配置文件中SQL语句的方法
- mybatis--动态sql中的where语句
- mybatis的sql的xml的配置文件中where条件中like的用法。
- MyBatis自动生成Where语句