2010-08-10 27 views
7

ı bu MySQL sorgusu var diyelim:Sipariş Bir alan belirli bir değere eşit mi?

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

nasıl satırları böylece öncelik x='abc' İLK sıralanır durumlar? y=0 ancak x!='abc' ise, bu satırların x='abc' adresinden sonra gelmesini istiyorum.

Bu basit bir ORDER BY deyimiyle yapılabilir mi?

Teşekkürler!

cevap

7
SELECT * 
FROM A 
WHERE x='abc' 
    OR y=0 
order by case when x='abc' then 0 else 1 end; 
Ben bir case deyimiyle onu yapardı
0

:

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)

İlgili konular