限制后获得另一个订单

ana*_*ana 12 mysql sql-order-by limit

想象一下,我有一个表'用户'有两个字段:'age'和'name'.我想要检索十大旧用户,然后我想要按名称排序的十个列表.

有可能用MySQL做到这一点吗?

我试过这个:(不起作用)

SELECT * FROM users order by age, name limit 10
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 28

使用子选择:

SELECT * FROM
(
    SELECT *
    FROM users
    ORDER BY age DESC
    LIMIT 10
) AS T1
ORDER BY name
Run Code Online (Sandbox Code Playgroud)

内部选择查找要返回的10行,外部选择按正确的顺序排列.

  • @Robert Harvey:没有,但是添加"AS"我觉得它确实更清楚它是什么.添加. (3认同)
  • @Robert Harvey:它是派生表的别名.不幸的是,这个别名是安抚MySQL的必要条件,即使它从未使用过:(.省略它会产生这样的错误:`错误代码:1248.每个派生表必须有自己的别名. (2认同)
  • 你之前不需要'AS`吗? (2认同)