分析
查询之后的顺序不是我们想要的,那么就按照我们指定的顺序重新排列一下,sql语句如下
SELECT * FROM tableName
WHERE fieldName in("Name1","Name2","Name3")
ORDER BY field(fieldName,"Name1","Name2","Name3")
解决
对应的MyBatis语句如下:
<select id = "myFunctionName" resultType="MyTypeName">
SELECT * FROM tableName
where fieldName in
<foreach collection="Names" item="id" index="index" open="(" close=")" separator=",">
${Name}
</foreach>
ORDER BY field(fieldName ,
<foreach collection="Names" item="id" index="index" separator="," close=")" >
${Name}
</foreach>
</select>