【发布时间】:2017-04-19 08:05:31
【问题描述】:
你好,我有一张大桌子,里面有很多这样的行。
ID / NAME / CNT
6 / yassine / 2
5 / yassine / 9
4 / yassine / 10
3 / yassine / 12
2 / yassine / 8
1 / yassine / 3
我想要的是按 desc 选择前 4 个 ID 顺序,它们是 6/5/4/3,然后在它们显示顺序之后,第一个 两个 按 id 显示,其余按 cnt 显示,所以输出是这样的:6/5/3/4。 我试过的是
(select * from table order by id desc limit 2) union (select * from (select * from table order by id desc limit 4) order by cnt desc)
但它似乎不起作用。任何人都可以帮忙吗? 更新 1:输出
ID / NAME / CNT
6 / yassine / 2
5 / yassine / 9
3 / yassine / 12
4 / yassine / 10
【问题讨论】:
-
没有明确的方法可以像这样对数据进行排序。你想达到什么目的?
-
@TimBiegeleisen 请检查更新我刚刚添加了想要的输出
-
ID和CNT列均未在您的输出中排序。你能提供你是如何得出这样一个结果的逻辑吗? -
我也无法解释您在 cnt 上的排序! 9 小于 10 或 12。除非您想将它们作为字符串排序...
-
@TimBiegeleisen 我想要的是按 id 排序前 2 个元素,所以我有 6 5,其余按 CNT 所以我有 3 然后 4 最终输出是 6 5 3 4