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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值