Cytat
WitamChcę przy select dodać kolumnę która będzie zawierała wartość najmniejszą z dwóch innych kolumn.
Wyprodukowałem takie zapytanie:
SELECT id, `time`, RememberTime , CASE WHEN `time`<=RememberTime OR RememberTime IS NULL then `time` WHEN `time`>RememberTime then RememberTime ELSE 0 END AS sortime FROM clients WHERE 1=1 AND ((RememberTime IS NOT NULL OR `time`<=1376495278) AND STATUS=3) ORDER BY `sortime` DESC, `id` DESC LIMIT 0,20
Wynik tego zapytania:
Cytat
+-------+------------+--------------+------------+
| id | time | RememberTime | sortime |
+-------+------------+--------------+------------+
| 18181 | 1375616418 | NULL | 1375616418 |
| 18168 | 1404983104 | 1375135200 | 1375135200 |
| 18166 | 1404983104 | 1374616800 | 1374616800 |
| 18174 | 1374616418 | 1374703200 | 1374616418 |
| 18171 | 1404983104 | 1374530400 | 1374530400 |
| 18170 | 1404983104 | 1374530400 | 1374530400 |
| 18147 | 1690464424 | 1374444000 | 1374444000 |
| 18172 | 1404983104 | 1373875200 | 1373875200 |
+-------+------------+--------------+------------+
8 rows in set (0.06 sec)
Ale gdy za komentuję jeden warunek WHEN:
SELECT id, `time`, RememberTime , CASE WHEN `time`<=RememberTime OR RememberTime IS NULL then `time` -- WHEN `time`>RememberTime then RememberTime ELSE 0 END AS sortime FROM clients WHERE 1=1 AND ((RememberTime IS NOT NULL OR `time`<=1376495278) AND STATUS=3) ORDER BY `sortime` DESC, `id` DESC LIMIT 0,20
Wynik zapytania wygląda ok:
Cytat
+-------+------------+--------------+------------+
| id | time | RememberTime | sortime |
+-------+------------+--------------+------------+
| 18181 | 1375616418 | NULL | 1375616418 |
| 18174 | 1374616418 | 1374703200 | 1374616418 |
| 18172 | 1404983104 | 1373875200 | 0 |
| 18171 | 1404983104 | 1374530400 | 0 |
| 18170 | 1404983104 | 1374530400 | 0 |
| 18168 | 1404983104 | 1375135200 | 0 |
| 18166 | 1404983104 | 1374616800 | 0 |
| 18147 | 1690464424 | 1374444000 | 0 |
+-------+------------+--------------+------------+
| id | time | RememberTime | sortime |
+-------+------------+--------------+------------+
| 18181 | 1375616418 | NULL | 1375616418 |
| 18174 | 1374616418 | 1374703200 | 1374616418 |
| 18172 | 1404983104 | 1373875200 | 0 |
| 18171 | 1404983104 | 1374530400 | 0 |
| 18170 | 1404983104 | 1374530400 | 0 |
| 18168 | 1404983104 | 1375135200 | 0 |
| 18166 | 1404983104 | 1374616800 | 0 |
| 18147 | 1690464424 | 1374444000 | 0 |
+-------+------------+--------------+------------+
Nie wiem jak rozwiązać problem, może ktoś podpowie?
Pozdrawiam
edycja
----------------------------
Oświeciło mnie, obie kolumny były różnego typu i dlatego błędne dane wyświetlał.
Teraz działa
Pozdrawiam