MySQL 加入小组

63个成员 1359个话题 创建时间:2011-11-25

MySQL中IN (id1,id2,id3...)的查询,结果集如何按id1, id2, id3....排序?

发表于 2012-10-05 3382 次查看

一些业务上的需要,IN (id1, id2,id3..)结果集还是需要按(id1,id2,id3...)的顺序排序,在MySQL中如何做呢?

答案是使用Mysql的FIELD函数:

使用案例:

SELECT * FROM user WHERE id IN (5, 3, 4, 9, 7) ORDER BY FIELD (id, 5, 3, 4, 9, 7);
3回复
  • 2楼 esnake0 2012-11-01

    求教:

    SELECT * FROM user WHERE id IN (5, 3, 4, 9, 7) ORDER BY id;

    这么写有什么问题?

  • 3楼 小青 2012-11-01

    @esnake0  

    我说的是按 任就按5,3,4,9,7的顺序排序。order by id 是根据id的大小来排序,出来的结果会变成3,4,5,7,9。

  • 4楼 esnake0 2012-11-10

    不好意思,之前沒看明白問題, 你這麼說就懂了。

    多謝交流,很有用的小技巧

发表回复
功能维护升级中,维护完成完后将再次开放,非常抱歉给您学习造成的不便。