Резултатът от сравнение в 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