我遇到了mysql查询的条件排序问题
我想为降序排序第一优先级
在第二级优先级,我想按下降顺序排序 订单(但仅限于pot> 80)
在第三级优先级,我想按点排序
我的问题是如何通过锅订购,但只有当锅是>一定数量。
SELECT NAME, POINTS, POT, MULTIPLIER
FROM ITEMS
ORDER BY MULTIPLIER DESC,
(CASE WHEN (POT > 80) THEN 'POT DESC,POINTS DESC'
ELSE 'POINTS DESC' END)
这是我尝试的但是,如果它符合条件,那么它会停止按第三级优先级的点排序...我希望它始终按第三级优先级的点排序
示例顺序我想:
multiplier(4),pot(20),points(144)
multiplier(2),pot(90),points(130)
multiplier(2),pot(90),points(13)
multiplier(1),pot(70),points(16783)
multiplier(1),pot(77),points(1653)
multiplier(1),pot(78),points(163)
答案 0 :(得分:2)
我认为这就是你要找的东西:
SELECT NAME, POINTS, POT, MULTIPLIER
FROM ITEMS
ORDER BY
multiplier DESC,
pot <= 80,
points DESC
答案 1 :(得分:0)
ORDER BY multiplier DESC, (CASE WHEN pot > 80 THEN pot ELSE 80 END) DESC, points DESC