mam tej tabeli (uproszczony):MySql warunkowy zamówienie przez
CREATE TABLE `my_table` ( `id` INT NOT NULL AUTO_INCREMENT , `item_name` VARCHAR(45) NULL , `price` DECIMAL(10,0) NULL , PRIMARY KEY (`id`))
muszę zaznaczyć wszystkie pozycje z tabeli, uporządkowane w ten sposób:
1. przedmioty z ceną> 0,00 najpierw sortowane według ceny ASC
2. pozycji z ceną = 0,00 wreszcie uporządkowane według id
próbowałem to:
SELECT * FROM my_table WHERE 1 ORDER BY CASE price WHEN !0.00 THEN price ELSE id END ASC
I ja dostać wyniki jak
item_name | price ----------|------- foo | 150,00 bar | 0,00 baz | 500,00 hum | 0,00
Jak zbudować kwerendę mieć
item_name | price ----------|------- foo | 150,00 baz | 500,00 bar | 0,00 hum | 0,00
?
Dziękuję za poświęcony czas
+1 za przeczytanie pytania. –
Cudownie, dziękuję bardzo! Jedno pytanie, 1 i -1 z THEN i ELSE, co one oznaczają? – ecstrim
Oznacza to, gdy cena wynosi 0, przypisz 1 do sortowania, w przeciwnym razie przypisz -1. Dowolne dwie wartości będą działać, o ile wartość THEN jest większa niż wartość ELSE. –