需要通过在特定字段中排序值来返回结果的MySql查询

时间:2016-06-27 11:23:40

标签: mysql

需要通过在特定字段中排序值来返回结果的MySql查询。

从下面我的结果集应该包含像parent_id(1,4,6)那样的顺序,首先是parent_id(2,3,7)接下来,其他应该是最后一个。

d  data  parent_id
----------------------
1      a1       1
2      abc      3
3      abcd     4
4      xyz      2
5      zxyy     6
2      abc      8
3      abcd     9
4      xyz      2
5      zxyy     15

2 个答案:

答案 0 :(得分:1)

CASE子句中使用ORDER BY表达式:

SELECT d, data, parent_id
FROM yourTable
ORDER BY CASE WHEN parent_id IN (1, 4, 6) THEN 1
              WHEN parent_id IN (2, 3, 7) THEN 2
              ELSE 3 END,
         parent_id

按照以下链接进行正在运行的演示:

SQLFiddle

答案 1 :(得分:1)

使用下面提到的查询

SELECT d, data, parent_id FROM table_name ORDER BY FIELD(parent_id,1,4,6,2,3,7);