[MySQL] Pobieranie ostatniego rekordu w tabeli

0

Czy w MySQL (4.x) istnieje jakaś funkcja, dzięki której mogę uzyskać ostatni rekord (ten, którego pole id, ustawiane automatycznie, ma największy numer)?
Nie chodzi mi tutaj o LAST_INSERT_ID, bo to pobiera tylko ostatnio wstawiony i jest zależne od połączenia.
Normalnie zrobiłbym to wykorzystując podzapytania, ale MySQL ich nie obsługuje.

Dziękuję za wskazówki.

0

ORDER BY id DESC LIMIT 1?

0
Wolverine napisał(a)

ORDER BY id DESC LIMIT 1?

Odpada. Muszę pobrać 5 rekordy. Pierwszy, ostatni, n-1, n, n+1. :)

//naliczyłem 5 :P - M
//w trakcie pisania zdania przypomniało mi się, że n-ty rekord też jednak będzie mi potrzebny :P - Dryo

0

Od 4.1 juz są podzapytania

0
Qyon napisał(a)

Od 4.1 juz są podzapytania

Niestety na docelowym serwerze mam tylko 4.0.15.

0
Dryobates napisał(a)

Odpada. Muszę pobrać 4 rekordy. Pierwszy, ostatni, n-1, n, n+1. :)

//naliczyłem 5 :P - M

moze ostatni == n :)

a nie przejdzie cos takiego jak zrobienie jakiejś transakcji pobranie tam 4/5 zapytaniami szukanych id do jakiejś wirtualnej tabeli i pozniej wyciagnac wszystko z tej tabeli :/ ??

0
ssnake napisał(a)

moze ostatni == n :)

tja, a n+1 to losowy rekord pobrany z googli...

0

Dobra, proszę państwa. Odpuśćcie sobie gadanie głupot. Będzie najwyżej jeszcze jedno zapytanie i tyle. Katastrofa nie będzie. Tylko nie będzie to najładniejsze.

0
Dryobates napisał(a)

Dobra, proszę państwa. Odpuśćcie sobie gadanie głupot. Będzie najwyżej jeszcze jedno zapytanie i tyle. Katastrofa nie będzie. Tylko nie będzie to najładniejsze.

Khem, Dryo - najpierw niedokladnie okreslasz problem, potem marudzisz ze masz stara wersje MySQL na serwerze, a na koncu odpowiadasz sobie sam ;). Bylem ciekaw, co Ci odpowiedza (do glowy przychodzilo mi tylko to co Wolverine napisal), ale Odpada. Muszę pobrać 5 rekordy. Pierwszy, ostatni, n-1, n, n+1 to juz bylo zwykle marudzenie a nie optymalizacja :P.

I tak w programistycznym podziale wladzy za generalny odbior danych z bazy odpowiada cos ogolnie pojmowane jako DAO, zatem jesli sam to sobie sformatujesz np. do jednej tabeli wyjsciowej wylacznie z danymi, o ktorych piszesz, to powinno byc uznane za "ladne" przez kazdy audyt/Bog wie co :).

0
roSzi napisał(a)

Khem, Dryo - najpierw niedokladnie okreslasz problem, potem marudzisz ze masz stara wersje MySQL na serwerze, a na koncu odpowiadasz sobie sam ;).

Fakt. Niedokładnie okresliłem problem. Pisane na szybko, jak zwykle.
Wolverine jak na informacje zawarte w poście odpowiedział absolutnie poprawnie. Ale z mojej winy nie było to to, czego oczekiwałem.
Qyon powiedział mi ważną rzecz, której nie wiedziałem. O podzapytaniach. Pełen entuzjazmu, że będę mógł się pobawić, sprawdziłem jaką mam wersje (i entuzjazm się skończył).
Jego odpowiedź również była jak najbardziej na miejscu (i dodatkowo wzbogaciłem się o trochę wiedzy).

Ale to co pisali ssnake i nav to już gadanie, dla gadania. Takie jak my teraz uprawiamy (ale problem "skończył się", więc OT już nikomu nie przeszkadza).

Bylem ciekaw, co Ci odpowiedza (do glowy przychodzilo mi tylko to co Wolverine napisal), ale Odpada. Muszę pobrać 5 rekordy. Pierwszy, ostatni, n-1, n, n+1 to juz bylo zwykle marudzenie a nie optymalizacja :P.

Ależ ja nigdzie nie pisałem, że chcę optymalizować. To miało tylko zaspokoić moje chore, błędne wyobrażenia o idealności świata, że wszystko można wpasować w ładne proste pudełeczka. Bez nadmiernych udziwnień, używając jednej funkcji zrobić to czego się oczekuje :)

I tak w programistycznym podziale wladzy za generalny odbior danych z bazy odpowiada cos ogolnie pojmowane jako DAO, zatem jesli sam to sobie sformatujesz np. do jednej tabeli wyjsciowej wylacznie z danymi, o ktorych piszesz, to powinno byc uznane za "ladne" przez kazdy audyt/Bog wie co :).

Pisałem już o moich chorych wyobrażeniach świata? :P

0

zrób to na uniach

1 użytkowników online, w tym zalogowanych: 0, gości: 1