mapper中同一个字段多个like条件

在MyBatis中,如果你想在同一个字段上应用多个LIKE条件,你可以使用<choose>标签来组合这些条件,或者使用<foreach>来动态生成SQL语句。以下是使用<foreach>实现的一个例子:

<select id="selectByMultipleLikes" parameterType="map" resultType="YourResultType">

        SELECT *

        FROM your_table

WHERE

<foreach item="item" index="index" collection="yourMap" open="(" separator="OR" close=")">

                your_column LIKE CONCAT('%', #{item}, '%')

</foreach>

</select>

在这个例子中,your_table是你要查询的表名,your_column是你要应用LIKE条件的字段名。yourMap是传入的参数Map,它包含了你想要应用LIKE条件的值的列表。

调用Mapper时,你可以传递一个包含多个值的Map作为参数:

Map<String, Object> params = new HashMap<>();
params.put("yourMap", Arrays.asList("value1", "value2", "value3"));
List<YourResultType> results = yourMapper.selectByMultipleLikes(params);

mapper接口:

List<YourResultType> selectByMultipleLikes(@Param("params") Map<String, Object> map);

这将生成类似以下的SQL语句:

SELECT *
FROM your_table
WHERE (
  your_column LIKE '%value1%'
  OR your_column LIKE '%value2%'
  OR your_column LIKE '%value3%'
)

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值