[mysql] pobieranie rekordów od końca

0

Witam. Chciałem pobrać z tabeli wszystkie rekordy tylko od końca. Nie mogę zastosować sortowania bo nie mam kolumny według której mógłbym posortować rekordy. Jak mam to zrobić?

0

Jak nie masz sortowania to co rozumiesz przez 'od konca'? Stworz taka kolumne i bedzie latwo wykonac zapytanie.

0

tylko że ja mam już w tej tabeli dane i będzie bałagan. Jak dajesz samego SELECTa to podaje ci od pierwszego dodanego rekordu do ostatnio dodanego rekordu a ja chce odwrotnie :)

0

zapisac do tablicy i rsort/arsort, lub w petli od 0 do num_rows odczytywac wartosc przez mysql_result(koniec - iteracja)

0

Nie wiem w czym problem dodac teraz kolumne z auto_increment - ponumeruje sie tak jak rekordy sa ulozone i mozesz sortowac. Wrzucanie wszystkiego do tablicy to sredni pomysl jak danych jest 10 mln a chcemy 10 ostatnich rekordow...

0

No to nie łatwiej przez mysql_result? Nie trzeba będzie tracić miejsca w bazie na 10mln pól typu int ;)

0

Ale zeby pobrac z tablicy 10 ostatnich pol to te 10mln musisz przeslac do strony. Zakladajac, ze autor tworzy strone, bo nigdzie o tym nie pisal. Wybieraj - wysylanie 10mln rekordow czy jedno dodatkowe pole numeryczne (czyt. zajmuje niewiele miejsca).

0

aa tez prawda, nie wiem czemu mi to umknelo - moj blad

0

Dzięki bardzo. Właśnie nie lepiej żeby mysql wszystko przetworzył? :P

0

No lepiej, lepiej. Dlatego dodaj ta dodatkowa kolumne i po sprawie.

0
MikiKam napisał(a)

Jak dajesz samego SELECTa to podaje ci od pierwszego dodanego rekordu do ostatnio dodanego rekordu a ja chce odwrotnie :)

TO NIE JEST PRAWDA I NIE SUGERUJCIE SIĘ NIBY POPRAWNYM SORTOWANIEM bo przy selct bez order by dane nie są wcale sortowane!!
a jak chcesz mieć dane w jakiejś kolejności to musisz wiedzieć wg czego one mają być - chcesz wg. kolejności dodania to autoinc timestamp itp

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