我是靠谱客的博主 彪壮红酒,最近开发中收集的这篇文章主要介绍mysql的foreach使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.  对于 需要 使用mybatis的foreach功能生成的 批量操作语句

比如:   select * from  user  n where ( ? in n.tags , ? in n.tags   ) 

    分解 在mybatis的xml文件就是

       <select id= param= resultmap=>

                select * from user m where

                   <foreach collection="listTag" index="index" item="tag" open="("
                                        separator="," close=")">
                                              #{tag} in n.tags
                                 </foreach>                     

          </select>

2.扩展中: collection: 

    1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

 <foreach collection="list" index="index" item="item" open="(" separator="," close=")">

    2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array

<foreach collection="array" index="index" item="item" open="(" separator="," close=")">

    3. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可

   

  <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">

  

 3. 

sql语句是这样:

                                  select * from t_news n where ? in n.tags or ? in n.tags

分解就是:

<select id="selectTestForEach" parameterType="News" resultMap="NewsResultMapper">
  select * from t_news n where 
  <foreach collection="listTag" index="index" item="tag" open=""
    separator="or" close="">
            #{tag} in n.tags
  </foreach>
 </select>


4.

   语句:select * from t_news n where n.tags like ? or n.tags like ?  

  分解是:

       <select id="selectTestForEach" parameterType="News" resultMap="NewsResultMapper">
  select * from t_news n where 
  <foreach collection="listTag" index="index" item="tag" open=""
      separator="or" close="">
             n.tags like  '%'||#{tag}||'%'
  </foreach>
 <select>






最后

以上就是彪壮红酒为你收集整理的mysql的foreach使用的全部内容,希望文章能够帮你解决mysql的foreach使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部