У меня есть эта таблица (упрощенно):
CREATE TABLE `my_table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`item_name` VARCHAR(45) NULL ,
`price` DECIMAL(10,0) NULL ,
PRIMARY KEY (`id`) )
Мне нужно выбрать все элементы из таблицы, упорядоченные таким образом:
1. товары с ценой> 0,00 сначала, упорядоченные по цене ASC
2. товары с ценой = 0.00 в последний раз, заказанные по id
Я пробовал это:
SELECT *
FROM my_table
WHERE 1
ORDER BY
CASE price WHEN !0.00 THEN price
ELSE id
END
ASC
И я получаю результаты, как
item_name | price
----------|-------
foo | 150,00
bar | 0,00
baz | 500,00
hum | 0,00
Как мне построить запрос, чтобы иметь
item_name | price
----------|-------
foo | 150,00
baz | 500,00
bar | 0,00
hum | 0,00
Спасибо за ваше время