mybaits中foreach与REGEXP结合的用法

在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 的值



            
                AND
                                         collection="useItem.split(',')" open=" " separator="and " close=" ">
                     cd.fit_product REGEXP  #{item}
                

            

            
                and cd.fit_product REGEXP #{useItem}
            

        



得出的结果完中命中想要的结果



记录一下,在拼SQL的时候花了点时间




foeach的用法

collection :collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array
item : 表示在迭代过程中每一个元素的别名
index :表示在迭代过程中每次迭代到的位置(下标)
open :前缀
close :后缀
separator :分隔符,表示迭代时每个元素之间以什么分隔



[本日志由 admin 于 2019-06-12 07:55 AM 更新]
上一篇: 《薜兆丰经济学讲义》读后感
下一篇: 2019.06.16 贵阳马拉松
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 127
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 30 字 | UBB代码 关闭 | [img]标签 关闭