2016-03-22 54 views
2

MySQL表:如何以特定方式訂購?

id | category | image<br> 
-------------------------------- 
0 | landscape | image name 
1 | panarimic | image name 
2 | portrait | image name 
3 | landscape | image name 
4 | landscape | image name 
5 | portait  | image name 

我想寫mysql的選擇首先應比列表別人得到的景觀。我怎樣才能做到這一點?我可以添加類別編號並進行「排序」,但在沒有它的情況下還有其他方法嗎?

+0

第一個ID永遠爲0第二個'ORDER BY類別ASC'。它會根據類別名稱字母排序 –

+0

@Anant這只是以防萬一這是他的所有類別.. – sagi

回答

5

是的,你可以在你的ORDER BY CLAUSE使用CASE EXPRESSION

SELECT t.id,t.category,t.image 
FROM YourTable t 
ORDER BY CASE WHEN t.category = 'landscapes' then 1 else 0 end DESC, 
     t.category 
+0

謝謝sagi,這就是我想學的。 – yavona

+0

沒問題,我會感謝批准,然後@yavona – sagi

0
SELECT 
    * 
FROM 
    tableName 
ORDER BY 
    CASE 
    WHEN category LIKE 'landscape' 
    THEN 1 
    ELSE 0 
    END DESC ;