geek的技术日志,记录每一次技术思考的闪光点。

MySql查询结果按照指定顺序排序

让查询结果按照指定顺序排序

———————————————————————-

表结构如下:
mysql> select * from test;
+—-+——-+
| id | name  |
+—-+——-+
|  1 | test1 |
|  2 | test2 |
|  3 | test3 |
|  4 | test4 |
|  5 | test5 |
+—-+——-+

执行以下SQL:
mysql> select * from test where id in(3,1,5);
+—-+——-+
| id | name  |
+—-+——-+
|  1 | test1 |
|  3 | test3 |
|  5 | test5 |
+—-+——-+
3 rows in set (0.00 sec)

这个select在mysql中得结果会自动按照id升序排列,
但是我想执行”select * from test where id in(3,1,5);”的结果按照in中得条件排序,即:3,1,5,想得到的结果如下:
id   name
3    test3
1    test1
5    test5

方法如下(三句都可以):
select * from test where id in(3,1,5) order by  find_in_set(id,’3,1,5′);
select * from test where id in(3,1,5) order by substring_index(‘3,1,2’,id,1);

select * from a where a in(3,1,5) order by field(id,3,1,5)

未经允许不得转载:极客技术 » MySql查询结果按照指定顺序排序

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址