MySQLでの比較の結果は0
です。 または1
。したがって、Stock > 0
1
です true
の場合 。そして1
0
よりも大きい 。したがって、どちらかを使用します
ORDER BY Stock = 0 ASC, Price DESC
または
ORDER BY Stock > 0 DESC, Price DESC
または
ORDER BY case when Stock > 0
then 1
else 2
end,
Price DESC