2019.06.16 贵阳马拉松
作者:admin 日期:2019-06-19
mybaits中foreach与REGEXP结合的用法
作者:admin 日期:2019-06-11
在mybaits中,foreach一般与in语法结合使用居多,与正则regexp结合用的没有见到比较多。刚好有这样的一个接口需求,费了点时间研究,达到想要的效果。
需求:需要查询在某字段中,匹配提交过来的字符的数据
需求描述:
在传值到mappper里时 传进来的值useItem的值是一个以逗号,隔开的字符串值[11,12,13],需要在表中字段fit_product找到同时包含11,12,13三个值的数据 而fit_product在数据库的值也是以逗号,切割存储的。
库中数据
eg:
类似的SQL执行语句
select id,fit_product from card_detail Where fit_product REGEXP '11' AND fit_product REGEXP '12' AND fit_product REGEXP '13' and mem
关键就在这里了,需要很好的处理ope/ separator/close 的值
<if test="useItem != null">
<if test="useItem.indexOf(',') != -1">
AND
<foreach item="item" index="index"
collection="useItem.split(',')" open=" " separator="and " close=" ">
cd.fit_product REGEXP #{item}
</foreach>
</if>
需求:需要查询在某字段中,匹配提交过来的字符的数据
需求描述:
在传值到mappper里时 传进来的值useItem的值是一个以逗号,隔开的字符串值[11,12,13],需要在表中字段fit_product找到同时包含11,12,13三个值的数据 而fit_product在数据库的值也是以逗号,切割存储的。
库中数据
eg:
类似的SQL执行语句
复制内容到剪贴板 程序代码
select id,fit_product from card_detail Where fit_product REGEXP '11' AND fit_product REGEXP '12' AND fit_product REGEXP '13' and mem
关键就在这里了,需要很好的处理ope/ separator/close 的值
复制内容到剪贴板 程序代码
<if test="useItem != null">
<if test="useItem.indexOf(',') != -1">
AND
<foreach item="item" index="index"
collection="useItem.split(',')" open=" " separator="and " close=" ">
cd.fit_product REGEXP #{item}
</foreach>
</if>