izbacio sam iz tabele sva nebitna polja, ostavio samo id, cena i cena1 da bi bilo jasnije:
Kôd:
-- dodao neke proizvode, 2 proizvoda su na akciji i imaju snizenu cenu
INSERT INTO `proizvodi` (cena, cena1) values (1,NULL),(3,NULL),(5.50, NULL),(9, NULL),(15, 9.95),(10, 7.25),(25, NULL);
mysql> select * from proizvodi;
+----+-------+-------+
| id | cena | cena1 |
+----+-------+-------+
| 1 | 1.00 | NULL |
| 2 | 3.00 | NULL |
| 3 | 5.50 | NULL |
| 4 | 9.00 | NULL |
| 5 | 15.00 | 9.95 |
| 6 | 10.00 | 7.25 |
| 7 | 25.00 | NULL |
+----+-------+-------+
7 rows in set (0.00 sec)
-- i sad kad pozovem onaj upit:
mysql> SELECT *, IFNULL(cena1, cena) AS trenutna_cena FROM proizvodi ORDER BY trenutna_cena;
+----+-------+-------+---------------+
| id | cena | cena1 | trenutna_cena |
+----+-------+-------+---------------+
| 1 | 1.00 | NULL | 1.00 |
| 2 | 3.00 | NULL | 3.00 |
| 3 | 5.50 | NULL | 5.50 |
| 6 | 10.00 | 7.25 | 7.25 |
| 4 | 9.00 | NULL | 9.00 |
| 5 | 15.00 | 9.95 | 9.95 |
| 7 | 25.00 | NULL | 25.00 |
+----+-------+-------+---------------+
7 rows in set (0.00 sec)
sto je ono sto i treba da se dobije, ako sam ja dobro razumeo sta ti hoces (trenutna cena je cena na akciji ako postoji, inace je osnovna cena, i po tome sortiramo od najmanje ka najvecoj)
ovo je na windowsu, server version: 5.1.40-community MySQL Community Server (GPL)