mybatis动态sql之trim用法
目录
trim标签有四个属性
使用trim标签去除多余的and关键字
使用trim标签结合case when实现批量更新
Demo1
Demo2
trim标签有四个属性
1.prefix,prefixOverrides,suffix,suffixOverrides
- prefix:给sql语句拼接的前缀
- suffix:给sql语句拼接的后缀
- prefixOverrides:去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
- suffixOverrides:去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定
使用trim标签去除多余的and关键字
- 如果这些条件没有一个能匹配上会发生什么?最终这条 SQL 会变成这样:
SELECT * FROM BLOG
WHERE
- 这会导致查询失败。如果仅仅第二个条件匹配又会怎样?这条 SQL 最终会是这样:
SELECT * FROM BLOG
WHERE
AND title like ‘someTitle'
- 使用 trim标签可以完成where标签相同的功能
state = #{state} AND title like #{title} AND author_name like #{author.name}
使用trim标签结合case when实现批量更新
Demo1
@Update({
})int updateUnMgntDevices(List UnMgntDevices);
Demo2
@Update({UPDATE hr_emp_employeeSET `on_job` = CASEWHEN `status` IN#{id} THEN 0ELSE 1ENDWHERE 1=1})void updateEmp(@Param("list") List list);
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
