MySQL - ORDER BY的顺序

时间:2015-03-26 09:21:46

标签: mysql sql

有一个MySQL查询:

SELECT * FROM table ORDER BY param1, param2, param3

有一个表格可以保存这些参数的优先级 - param,priority(int)

我想以这样的方式执行上述查询:具有最高优先级的param将在ORDER BY语句中位于第一位,在此之后第二位,第三位将是最后一位。

是否可以在MySQL中使用。如果是 - 怎么样?

3 个答案:

答案 0 :(得分:0)

您只需按列中的特定值排序..您按整列排序,在您的案例列优先级

SELECT * FROM table ORDER BY priority ASC

优先级1将是第一个(如果您希望优先级1成为最后一个,则可以使用DESC)

答案 1 :(得分:0)

在MySQL中,您将使用find_in_set()case(后者是ANSI标准):

SELECT *
FROM table
ORDER BY find_in_set(priority, param1, param2, param3);

答案 2 :(得分:0)

我就是这样做的

SELECT *
FROM table
ORDER BY FIELD(priority, param1, param2, param3);