Adalente adlı üyeden alıntı: mesajı görüntüle
Merhaba,

Sql ile select çekip ürünleri sıralıyorum ama bazı ürünler dopingli olduğu için önceliği onlara vermek istiyorum ama dopin tablomda sıralama var örnek 1 bekliyor 2 onaylı 3 bitti.

Buna Göre Sorgumda sadece ilk başa 2 olanları getirip sonrasında diğer ürünleri sıralamalıyım.

Aşağıdaki Kodda ORDER BY id.durum DESC dediğimde bekleyenler ve bitenlerde sıraya giriyor ben sadece onaylı yani 2 olanlar gelsin sonrasında ise NULL olanlar gelsin istiyorum.

SELECT * from urun u LEFT JOIN urun_doping id on i.urid=id.iID where i.urun_durumu=1 ORDER BY id.durum DESC LIMIT 18


Hocam case when order yapabilirsin örnek kod bırakacağım ama çalışıp çalışmadığından emin değilim. sadece örnek:



SELECT * from
urun u
LEFT JOIN urun_doping id ON
i.urid=id.iID
WHERE i.urun_durumu=1
ORDER BY
(
    CASE
        WHEN id.durum = 1 THEN 3
        WHEN id.durum = 2 THEN 1
        WHEN id.durum = 3 THEN 2
) ASC
DESC LIMIT 18