Resultatet av en jämförelse i MySQL är 0
eller 1
. Så Stock > 0
är 1
om true
. Och 1
och större än 0
. Så använd antingen
ORDER BY Stock = 0 ASC, Price DESC
eller
ORDER BY Stock > 0 DESC, Price DESC
eller
ORDER BY case when Stock > 0
then 1
else 2
end,
Price DESC