Potrzebuję zapytania, które da mi wynik, który jest albo (a) najwyższą ceną, albo (b) tą z najstarszym znacznikiem czasu. We wszystkich przypadkach cena powinna atutem timestamp (czyli jeśli płyta ma bardzo stare timestamp wyższą cenę niż wszystkich innych, to zawsze powinien zwrócić zapis o najwyższej cenie)ORDER BY na wielu warunkach
Oto kilka scenariuszy:
id | price | date
1 | 5 | 2012-02-20 08:59:06
2 | 5 | 2012-02-20 09:59:06
3 | 7 | 2012-02-20 10:59:06
powinien wrócić id 3, ponieważ jest to najwyższa cena
id | price | date
1 | 5 | 2012-02-20 08:59:06
2 | 5 | 2012-02-20 09:59:06
3 | 5 | 2012-02-20 10:59:06
powinien wrócić id 1, ponieważ jest najstarszą
w moim obecnym zapytania robie th to:
SELECT * FROM table ORDER BY price, date DESC LIMIT 1
Niestety to zapytanie nie działa w ten sposób, jak to opisałem powyżej.
Dzięki za pomoc
zostały pokazane dwa identyczne zestawy danych, i poprosić różne wyniki. Czy masz zamiar mieć 2 różne zapytania? jeśli nie, jaki jest poprawny wynik? – Randy
Nie widzę różnicy w twoich zbiorach danych, dlatego trudno jest zrozumieć, co próbujesz osiągnąć ... :) – zaphod1984
dlaczego drugi przykład powinien zwrócić id 1? Wspomniałeś, że cena powinna zawsze pokonać znacznik czasu. –