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 的值
AND
collection="useItem.split(',')" open=" " separator="and " close=" ">
cd.fit_product REGEXP #{item}
and cd.fit_product REGEXP #{useItem}
得出的结果完中命中想要的结果
记录一下,在拼SQL的时候花了点时间
parameterType="com.syt.entity.Retrieve"
resultMap="BaseResultMap">
Select
cr.uuid, cr.card_no, cr.mem_id,cr.state,
cr.retrieve_time, cr.card_uuid, cr.relative_activity,cr.card_value,
cr.expire_time,
cd.title,cd.remark,cd.card_type,cd.coverpath,cd.keyvalue,cd.code,cd.min_orderamount,cd.fit_product,cd.fit_protype,cd.fit_usertype,cd.fit_channel,cd.fit_device
Where
AND
collection="useItem.split(',')" open=" " separator="and " close=" ">
cd.fit_product REGEXP #{item}
and cd.fit_product REGEXP #{useItem}
foeach的用法
collection :collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array
item : 表示在迭代过程中每一个元素的别名
index :表示在迭代过程中每次迭代到的位置(下标)
open :前缀
close :后缀
separator :分隔符,表示迭代时每个元素之间以什么分隔
需求:需要查询在某字段中,匹配提交过来的字符的数据
需求描述:
在传值到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
cd.fit_product REGEXP #{item}
and cd.fit_product REGEXP #{useItem}
得出的结果完中命中想要的结果
记录一下,在拼SQL的时候花了点时间
复制内容到剪贴板 程序代码
parameterType="com.syt.entity.Retrieve"
resultMap="BaseResultMap">
Select
cr.uuid, cr.card_no, cr.mem_id,cr.state,
cr.retrieve_time, cr.card_uuid, cr.relative_activity,cr.card_value,
cr.expire_time,
cd.title,cd.remark,cd.card_type,cd.coverpath,cd.keyvalue,cd.code,cd.min_orderamount,cd.fit_product,cd.fit_protype,cd.fit_usertype,cd.fit_channel,cd.fit_device
Where
AND
cd.fit_product REGEXP #{item}
and cd.fit_product REGEXP #{useItem}
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 | 查看次数: 3089
发表评论