![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam tabelę (w przybliżeniu):
Chciałbym wyciągnąć ostatnich 10 rekordów sortując po comment_date DESC, ale żeby comment_item się nie powtórzyło. Niestety, GROUP BY comment_item psuje całe sortowanie (bierze pierwszą napotkaną datę). Wymyśliłem takie coś, ale nie jestem pewien złożoności obliczeniowej, która jest pewnie ogromna:
Katuję bazę danych? SELECT DISTINCT rozwiązałby mój problem? Jakbym musiał wówczas ułożyć optymalne zapytanie? Ponoć DISTINCT wydajniejsze od ewentualnego GROUP BY Cytat When combining LIMIT row_count with DISTINCT, MySQL stops as soon as it finds row_count unique rows. Z góry dzięki za odpowiedzi, Athlan. -------------------- Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Gitara gra. MAX() działa dzięki GROUP - otrzymuję te same wyniki, co moim sposobem, który jest trywialny i rozłożony na czynniki pierwsze. Taki indeks już mam, więc jest w użyciu po EXPLAIN'ie.
Ale nie jestem pewien, czy się to czymś różni. W zasadzie rozpisałem MAX() na części pierwsze, stąd wynik powinien być taki sam. Ufam jednak mechanizmom bazy danych. Propsy : ) -------------------- Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 19:12 |