szs 发表于 2016-11-26 09:36:24

mybatis查询,按特定顺序排序

  在数据库的查询中我们可以使用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>
页: [1]
查看完整版本: mybatis查询,按特定顺序排序