2010-08-10 8 views
7

Diciamo che ho questo query MySQL:Ordine Con un campo uguale a un valore specifico?

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

Come posso dare priorità le righe in modo che i casi in cui sono ordinate x='abc' PRIMO? Se y=0 ma x!='abc', voglio che quelle righe vengano dopo i casi in cui x='abc'.

Ciò può essere ottenuto con una semplice clausola ORDER BY?

Grazie!

risposta

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

lo farei con un'istruzione 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)

Problemi correlati