csdn_sqj
csdn_sqj
采纳率60.5%
2020-02-19 18:18

mysql数据库 怎么实现:传入一个列表,返回一个列表?

5
已采纳

图片说明
+++
如图,这是老师的例程。
roleCodes 是一个String类型的列表,把它传进sql语句中,要怎么操作,才能返回一个列表出来?
+++
我只知道像: select * from User where id=#{id}; 这样的传入一个参数的语句。
请大神指教,谢谢
+++
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • qq_32549451 不过围城 1年前
     List<CourseTaskStatus> selectTaskStatusByCourseIds(@Param("courseIds") List<Integer> courseIds, @Param("userId") int userId);
    
    <select id="selectTaskStatusByCourseIds" resultMap="CourseTaskResultMap">
            select 
           ...
            where chapter.course_id in
            <foreach collection="courseIds" item="id" open="(" close=")" separator=",">
                #{id}
            </foreach>
        </select>
    
    点赞 评论 复制链接分享
  • qq_35211818 橙子AQA 1年前

    select authority_code from role_authority where find_in_set(role_id,#{roleIds}

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 1年前
    要看findAuthorityByRoleCodes这个函数怎么实现的,有两个可能性,一个是它支持传入一个List<string>,一个是它只能支持单个的string
    如果是后者,那么得自己循环
    List<string> result = new List<String>();
    for (String s: roleCodes)
    {
    String r = findAuthorityByRoleCodes(s);
    result.Add(r);
    }
    
    还有就是
    
    for (int i = 0; i < roleCodes; i++)
    {
    if (i == 0) 
    strroleCodes = roleCodes[0];
    else
    strroleCodes = strroleCodes + "," + roleCodes[i];
    }
    
    然后对应的sql
    select * from User where id in {#{strroleCodes}}
    
    点赞 1 评论 复制链接分享

为你推荐