首页 > 解决方案 > 多个 ORDER BY

问题描述

在此处输入图像描述

我完全迷失在 OrderBy 条款中。

订购后我需要这个结果: ID's: 8, 5, 2, 1, 4, 6, 7, 3

这些规则必须按以下顺序应用:

有没有可能做这个订购?

谢谢你们!

标签: mysqlsqlsql-order-by

解决方案


我会将您的要求翻译为:

order by
    top3 desc,
    top2 desc,
    top1 desc,
    nullif(`order`, 0) nulls last

最后一个标准通过升序缩短order,同时保持nulls 和0值最后。

请注意,这order是所有 SQL 方言中的保留字,因此不是列名的好选择。


推荐阅读