条件MySQL排序依据

时间:2013-10-30 16:22:22

标签: mysql

我遇到了mysql查询的条件排序问题

  1. 我想为降序排序第一优先级

  2. 在第二级优先级,我想按下降顺序排序 订单(但仅限于pot> 80)

  3. 在第三级优先级,我想按点排序

  4. 我的问题是如何通过锅订购,但只有当锅是>一定数量。

    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)
    

2 个答案:

答案 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