Union kullanarak ve mysql order by yan
Mysql sorguda Birliği ile sipariş kullanmak istiyorum. Bir tablo sitemde bir arama için mesafeye göre farklı kriterlere dayalı kayıt farklı getiriliyor duyuyorum. İlk select sorgu veri tam yeri arama ile ilgili döndürür . 2. sorgu döndürür seçin veri yerden 5 km mesafe içinde ilgili aradı. 3 sorgu döndürür seçin veri yerden 5-15 km içinde mesafe ile ilgili aradı.
O zaman ben m Birliği tüm sonuçları birleştirme ve disk belleği ile bir sayfada göstermek için kullanıyor. Altında uygun bir başlık olarak'Kesin arama sonuçları','5 km içinde' olurvb
Şimdi sonuçlar kimliği veya add_date göre sıralamak istiyorum. Ama benim sorgu sonunda yan tarafından sipariş eklediğimde ( add_date sorgu 2 sorgu sorgu1 Birliği Birliği 3 sıra). Tüm sonuçları sıralar. Ama istediğim her başlık altında sıralamak gerekir.
CEVAP
Diğer kriterler, örneğin tarafından sıralamadan önce ilk sıralama, sözde sütun her seçmek için rütbe adında ekleyerek bunu yapabilirsiniz:
select *
from (
select 1 as Rank, id, add_date from Table
union all
select 2 as Rank, id, add_date from Table where distance < 5
union all
select 3 as Rank, id, add_date from Table where distance between 5 and 15
) a
order by rank, id, add_date desc
Nasıl bir SQL import MySQL Komut satır...
Kullanarak Varlık Çerçevesi ile MySQL...
PHP/MySQL BULUNDUĞU bir dizi kullanara...
MySQL ERROR 1045 (28000): Access kulla...
MySQL kullanarak GÜNCELLEME birden faz...