2012-04-12 89 views
0

我有一個查詢,我想從表格中獲得20個最熱門位置,然後按字母順序排列。我想知道是否有更清潔或更有效的方法來做到這一點?mysql order by limit

SELECT 
    city 
FROM (
    SELECT 
    city, 
    count(*) AS cnt 
    FROM locations 
    GROUP BY city 
    ORDER BY cnt DESC 
    LIMIT 20 
) s ORDER BY city; 
+4

對我來說看起來不錯 – Phil 2012-04-12 01:55:02

+0

也許因爲我不確定它是否是最有效的方法,所以我想問? – Jeff 2012-04-12 02:04:33

+0

@Lion其實,他正在檢索一個未使用的字段。反正沒什麼進步...... – 2012-04-12 02:10:54

回答

3

稍微乾淨:

SELECT city FROM (
    SELECT city FROM locations 
    GROUP BY city 
    ORDER BY count(*) DESC 
    LIMIT 20 
) s ORDER BY city 

你並不需要檢索count(*)如果你不打算使用它。