mybatis配置MySQL的批量查询
来源:互联网 发布:php __set 破坏封装 编辑:程序博客网 时间:2024/06/16 01:44
我的需求是查出每个球队中的助攻数最多的球员信息。
最开始使用配置的sql是:
<select id="selectMaxAssistListByTeamId" resultMap="BaseResultMap" parameterType="java.util.List" > select <include refid="Base_Column_List" /> from tab_player where team_id in<foreach collection="list" item="item" index="index" separator="," open="(" close=")"> #{item,jdbcType=VARCHAR} </foreach> Order By assist desc limit 1 </select>
这个SQL只能查出一条记录,显然不合逻辑。应该把order by移进foreach,一起循环:
<select id="selectMaxAssistListByTeamId" resultMap="BaseResultMap" parameterType="java.util.List" > select <include refid="Base_Column_List" /> from tab_player where <foreach collection="list" item="item" index="index" separator="," > team_id = #{item,jdbcType=VARCHAR} Order By assist desc limit 1 </foreach> </select>还是不行,报错:...Exception:Undeclared variable:team_id.
百度无结果,都是用的in,显然不合我的要求,应该把in换掉。想了想,其实tab_player这个表里team_id
都是关联自tab_team这个表的team_id,用in的话不但是多此一举并且插叙速度还很慢。
应该继续改进第二个sql换个思维:
用union!把separator的逗号改成UNION,并且要用括号()把sql包起来,不然报错:Incorrect usage of UNION and ORDER BY.
<select id="selectMaxAssistListByTeamId" resultMap="BaseResultMap" parameterType="java.util.List" > <foreach collection="list" item="item" index="index" separator="UNION" > (select <include refid="Base_Column_List" /> from tab_xsj_player where team_id = #{item,jdbcType=VARCHAR} Order By assist desc limit 1) </foreach> </select>
本方法用的是union,有用in能查出来的请献出你的想法大家共同学习!
阅读全文
0 0
- mybatis配置MySQL的批量查询
- Mysql--Histore(Mybatis)批量查询操作
- mybatis+mysql的批量更新
- mysql+mybatis 集合查询配置
- Mysql的批量操作(批量查询)
- mybatis的批量插入与动态查询
- Mybatis-批量查询&&批量插入
- mybatis 批量查询
- Mybatis批量查询
- MyBatis批量查询用户信息
- mybatis批量查询
- mybatis批量查询
- Mybatis批量查询,批量添加,批量删除
- mybatis批量执行mysql的update操作
- 关于mybatis+mysql批量插入的问题
- mybatis 对 mysql的批量操作
- Mybatis的批量插入(oracle、MySQL)
- MyBatis(mysql) 批量更新的坑
- Javscript删除数组中指定元素
- 【内功篇】C语言的输入输出浅析(一)
- analogWrite()
- java中String和StringBuffer区别
- 第四章Python对象
- mybatis配置MySQL的批量查询
- 5、opencv的Mat介绍
- Android 自定义搜索框
- 玩家任务表(每个玩家应该有14条任务记录,需要根据"任务配置表"补全"玩家任务表",原有记录不能修改把每人缺失的任务记录补上)
- 论文阅读Faster RCNN
- 嵌入式学习4(Linux其他常识)
- 人工智能是人类最后一次革命
- Selenium Webdriver (学习笔记)
- 【Eternallyc】实现两个数交换