2012-02-02 47 views
2

我正在運行一個查詢,獲取具有特定年齡的用戶。 EG AGE <= 5MySQL的順序:把行匹配查詢的頂部?

所以查詢得到這些行:

Country | Age 
US  5 
US  20 
AR  3 
ES  5 
US  2 

的問題是,要保持相關性我想先顯示匹配用戶的國家的結果,把我們當做它應該是這樣的一個例子:

Country | Age 
US  2 
US  5 
US  20 
US  2 
AR  3 
ES  5 

我知道如何通過所有年齡兩個查詢做到這一點,首先要把我們的結果,然後休息和秩序,但我想知道是否有可能獲得只用一個查詢排序結果。

回答

5

你可以使用一個ORDER BY這樣的:

order by case country when 'US' then 1 else 2 end, country, age 

這將使美國第一,然後剩下的就跟從和country進行排序。

2

假設你的表結構是:

CREATE TABLE tblName 
(
    country VARCHAR(20) NOT NULL, 
    age INT NOT NULL 
) 

那麼你可以做下面的查詢目的,您的要求。

SELECT * FROM tblName WHERE age <= 5 ORDER BY (country='US') DESC, age