2012-01-02 4 views

答えて

11
ORDER BY 
    CASE 
    WHEN position="chef" THEN 0 
    ELSE 1 
    END, 
    position DESC 

の条件は、あなたが最初column1='Put This First'を持つ行を置くいくつかの位置

ORDER BY 
    CASE 
    WHEN position="chef" THEN 0 -- first 
    WHEN position="dogsbody" THEN 99 -- last 
    ELSE 1 
    END, 
    position DESC 
+0

、非常によく理解! – Abhay

1
SELECT * FROM mytable ORDER BY column1='Put This First' DESC, column1; 

これに優先順位を付けることができますときに、よりを追加し、その後、カラム1に基づいて、他のすべての注文に進みます。

SELECT * FROM mytable ORDER BY column1=1 DESC, column2; 

これは別の例です。最初にcolumn1=1の行を配置し、次にcolumn2の値に基づいて残りの行を並べ替えます。

関連する問題