SELECT oh_id, oh_data FROM osoba_historia WHERE oh_osoba='1037' ORDER BY oh_data DESC
Tym zapytaniem zwracanych jest powiedzmy 12 rekordów, są posegregowane malejąco. Chciałbym aby z tej dwunastki zwracane były tylko rekordy od szóstego do ostatniego. Zwracanie pierwszych pięciu jest łatwe (LIMIT 5), natomiast w drugą stronę jest problem. Wpadłem na pomysł żeby posegregować je rosnąco zamiast malejąco i zlimitować zliczając i odejmując od wyniku pożądaną wartość (np 5). Coś na zasadzie
SELECT oh_id, oh_data FROM osoba_historia WHERE oh_osoba='1037' ORDER BY oh_data ASC LIMIT (COUNT(*)-5)
Niestety, jak się łatwo domyślić, to nie działa. Czy jest jakiś sprytniejszy sposób?