在数据库的查询中我们可以使用order by实现按某个字段升序或者降序的排序,如果是要按照一个特定的顺序排序,用order by 就不行了,例如要按照id 是2、3、1这个顺序排序,显然用升序或者降序都不行,这里就要用到集合了(unionall)
这里我们可以创建一个数组或者是list把id按照一定的顺序放入到数组或者集合中 把这个集合或者数组作为参数传递个方法
public List<Base> findHistory(List<Integer> ids){
return sql.selectList(NAMESPACE + "findHistory", ids);
}
mybatis的动态sql如下
<select id="findHistory" resultMap="recentlyBrowse"> select * from( <foreach collection="list" item="id" index="index" open="(" close=")" separator="union all"> select * from T_BASE where BASE_ID=#{id,jdbcType=DECIMAL} </foreach> ) </select>