select有条件in要按照in中的数据排序

mybatis中的写法

<select id="selectByIds"     
                resultType="com.hoohui.electronic.util.ExHashMap">
        select
        <include refid="Base_Column_List" />
        from doctor t where t.id in
        <foreach item="item" index="index" collection="array"
                 open="(" separator="," close=")">
        #{item}
        </foreach>
        order by field(id,
        <foreach item="item" index="index" collection="array"
                 open="" separator="," close="">
            #{item}
        </foreach>
        )
    </select>        

mysql语句的写法

SELECT  *  FROM  `doctor`  WHERE  id  IN(580,579,578,577,576,575,574,573,543,305,321,340,388,402,433)  ORDER  BY  INSTR(',580,579,578,577,576,575,574,573,543,305,321,340,388,402,433,',CONCAT(',',id,','))
select * from table where id IN (3,6,9,1,2,5,8,7) order by field(id,3,6,9,1,2,5,8,7); 
原文地址:https://www.cnblogs.com/dhrwawa/p/10913460.html