ORDER BY ile değerine göre sıralama?

4 Cevap php

Açıklama için, sıralamak MySQL bu şekilde kullanmak mümkün?

ORDER BY CompanyID = XXX DESC

Ne yapmaya çalışıyorum X = Y, bu durumda, şirket kimliği = XXX şeyi sıralamak için bir sql sorgusu kullanmaktır. Şirket kimliği XXX değil tüm değerler şirket kimliği = XXX tüm sonuçlardan sonra gelmelidir.

Ben sorgu sınırlamak istemiyorum ama diğer listeleri üzerinde belirli bir şirket sıralamak istiyorum.

4 Cevap

Sizin sorgu gayet iyi. CompanyID = xxx aksi bir maç 1 ve 0 verir. Sadece ikincil sipariş sütun olarak şirket kimliği sütunu ekleyin.

ORDER BY CompanyID = XXX DESC, CompanyID ASC

Bu şekilde, şirket kimliği ilk sabit eşleşen kayıtları almak, sonra gerisi sıralanmıştır.

Alternatif olarak, bu yapabilirdi:

ORDER BY CompanyID <> XXX ASC, CompanyID ASC

Sen gibi, tarafından sırayla bir durumda kullanabilirsiniz:

order by case when CompanyID = XXX then 1 else 2 end

Dışarı yapabildin muhtemelen sahte

SELECT CompanyID, IF(CompanyID = XXX, -1, CompanyID) AS sortby
FROM companies
ORDER BY sortby DESC

Sen ifade ederek sırayla bir CASE deyimi kullanarak denemek isteyebilirsiniz. Şirket id tercih şirket, return 0, sütuna göre ikincil bir sırayla her zamanki gibi şirket unvanına göre Sonra başka getirisi 1. Sipariş eşleşir.

 order by case when CompanyID = XXX then 0 else 1 end, CompanyName

Eğer alfabetik kalan düzenin tüm adıyla (ya da ancak bunu sipariş istiyorum) tarafından daha sonra, üstündeki tercih edilen şirket var bu şekilde.