Mysql查询结果顺序按 in() 中ID 的顺序排列

[java]  view plain  copy
  1. <select id="queryGBStyleByIDs" resultMap="styleMap">  
  2.         select style_num_id ,style_id,style_title,style_pic FROM  gb_style where online = 1 AND  is_hide = 0 and style_num_id in  
  3.         <foreach collection="styleNumIDs" item="styleNumId" separator="," open="(" close=")">  
  4.          #{styleNumId}  
  5.         </foreach>  
  6.         ORDER BY FIELD  
  7.         <foreach collection="styleNumIDs" item="styleNumId" separator="," open="(style_num_id," close=")">  
  8.             #{styleNumId}  
  9.         </foreach>  
  10.     </select>  

最终输出sql如下:

select  style_num_id ,style_id,style_title,style_pic FROM  gb_style where online = 1 AND  is_hide = 0 and style_num_id in (1,3,2,5)  order by  field (style_num_id,1,3,2,5);

猜你喜欢

转载自blog.csdn.net/scyxm0426/article/details/78775181