select * from user
order by
(case
when user_id= 10 THEN 1
when user_id= 30 THEN 2
when user_id= 40 THEN 3
else 4 END);
mapper.xml 的简单demo
<!--通过实体作为筛选条件分页查询-->
<select id="queryOrderBy" parameterType="java.util.Map" resultMap="UserMap">
SELECT
<include refid="allColumn"/>
FROM user t1
<where>
1=1
</where>
order by ( case
<foreach collection="_parameter" item="item" index="index" separator="">
when user_id= #{item ,jdbcType=INTEGER} THEN #{index ,jdbcType=INTEGER}
</foreach>
else 100 END)
</select>
<select id="queryOrderByList" parameterType="java.util.List" resultMap="UserMap">
SELECT
<include refid="allColumn"/>
FROM product_sys.sys_user t1
<where>
1=1
</where>
order by ( case
<foreach collection="list" item="item" index="index" separator="">
when user_id= #{item.userId ,jdbcType=INTEGER} THEN #{item.orderByNo ,jdbcType=INTEGER}
</foreach>
else 100 END)
</select>