2016-03-22 31 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 ;