Merhaba arkadaşlar bir mesajlaşma sistemi düşünün, aynı whatsapp gibi sabit yap dendiğinde mesaj yukarı sabitlensin istiyorum ama birden fazla sabit mesaj varsa kendi aralarında son gelen üst tarafta olsun istiyorum. Sorgu bence doğru ama nedense doğru sıralanmıyor.

SELECT DISTINCT (SELECT gonderen_id FROM mesajlar WHERE mesaj_id = mesajlar.mesaj_id ORDER BY ozel_mesaj DESC LIMIT 10) gonderen_id FROM mesajlar WHERE alici_id = 1 ORDER BY mesaj_id DESC


  • Arkadaşlar tüm kolonlar int,

  • ozel_mesaj varsayılan 0 eğer 1 olursa sabit oluyor

  • Sıralama şekli önce ozel_mesaj yani sabit mesajlar üstte olacak şekilde sıralanacak

  • Daha sonra ozel_mesaj değeri 1 olanlar kendi aralarında, değeri 0 olanlarda kendi aralarında sıralanacak

  • Yani; sabit olan mesajlar (ozel_mesaj = 1) kendi aralarında son eklenenler üstte olacak daha sonra sabit olmayanlar (ozel_mesaj = 0) kendi aralarında son eklenenler üstte olacak

  • Kısaca Whatsapp'ta olduğu gibi olacak. Sistem tamam ama sadece SQL kodu yanlış çekiyor


Yukarıdaki kod mantığa göre doğru çekmesi lazım ama olmuyor bir türlü. Saatlerdir sürekli sorguyu baştan farklı şekillerde denedim ama olmuyor. Acaba bir fikri olan varmı arkadaşlar?