2011-10-16 46 views
6

想象一下,我有一個包含'age'和'name'兩個字段的'用戶'表。我想檢索前十名較老的用戶,然後我想要按名稱排序的十個列表。通過mysql限制後獲得另一個訂單

是否可以用mysql來做到這一點?提前爲您幫忙(不工作)

SELECT * FROM users order by age, name limit 10 

感謝:

我試過這個!

+0

「不起作用」是什麼意思? –

+0

嗯我已經嘗試過類似的表上的類似查詢(我認爲是這樣),併爲我工作得很好... – Serhiy

回答

17

使用子查詢:

SELECT * FROM 
(
    SELECT * 
    FROM users 
    ORDER BY age DESC 
    LIMIT 10 
) AS T1 
ORDER BY name 

內選擇找到你想要回10行,以及外部選擇使他們以正確的順序。

+1

什麼是T1的? –

+1

@Robert Harvey:這是派生表的別名。不幸的是,這個別名對於安撫MySQL是必要的,即使它從來沒有被使用:(忽略它給出了這個錯誤:'錯誤代碼:1248。每個派生表都必須有它自己的別名' –

+1

你不需要一個'AS' ? –