2010-08-10 93 views
7

比方說,我有這樣的MySQL查詢:訂單按字段等於特定值?

SELECT * FROM A WHERE x='abc' OR y=0; 

我怎樣才能行的優先級,以便在那裏x='abc'是有序的第一批案件?如果y=0但是x!='abc',我希望那些行在x='abc'之後出現。

這可以用一個簡單的ORDER BY子句來完成嗎?

謝謝!

回答

7
SELECT * 
FROM A 
WHERE x='abc' 
    OR y=0 
order by case when x='abc' then 0 else 1 end; 
0

我會用一個case語句做到這一點:

SELECT *, 
    CASE WHEN column_one = 0 THEN 0 
     WHEN column_two = 'ADMIN' THEN 1 
    END AS multi_column 
FROM sometable 
ORDER BY multi_column; 
0

ORDER BY FIELD(x,'abc',x)

相關問題