有一个MySQL查询:
SELECT * FROM table ORDER BY param1, param2, param3
有一个表格可以保存这些参数的优先级 - param,priority(int)。
我想以这样的方式执行上述查询:具有最高优先级的param将在ORDER BY语句中位于第一位,在此之后第二位,第三位将是最后一位。
是否可以在MySQL中使用。如果是 - 怎么样?
答案 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);