Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobieranie tablicy z powtarzającymi się rekordami
Forum PHP.pl > Forum > Przedszkole
bahh
Dzień dobry,

mam tablicę pobieraną za pomocą select do skryptu - tablica z kolumnami ip oraz czas.

Chcę by przy tablicy
-------------
| ip | czas |
-------------
| 1 | 212 |
| 1 | 213 |
| 1 | 214 |
| 2 | 211 |
| 2 | 212 |

Wyświetliło mi tylko ostatnie wystąpienie danego ip czyli wyświetliło mi tablicę
-------------
| ip | czas |
-------------
| 1 | 214 |
| 2 | 212 |

Jak sobie z tym poradzić? Pozdrawiam
freemp3
Należy użyć DISTINCT oraz zapewne ORDER BY.
bahh
więc daje takie zapytanie
SELECT DISTINCT `ip` FROM `xxx` WHERE YEAR(czas)='.date("Y").' AND MONTH(czas)='.date("m").' AND DAY(czas)='.date("d").' ORDER by `czas` DESC

ale chciałbym jeszcze pobrać czas poza distinct ip, jak powinno wyglądać zapytanie?


wstawiłem zamiast distinct group by, jednakże nie sortuje mi tablicy według order by
freemp3
W przypadku użycia DISTINCT możesz podać więcej niż jedną kolumnę tak jak podczas zwykłego SELECT:
Kod
SELECT DISTINCT `ip`, `czas` ...
bahh
wtedy wyświetla mi wszystkie rekordy, bez żadnego grupowania
memory
  1. SELECT *,(SELECT czas from xxx as w WHERE w.ip = t.ip ORDER by czas DESC LIMIT 1) as ostaniczas FROM `xxx`as t WHERE YEAR(czas)='.date("Y").' AND MONTH(czas)='.date("m").' AND DAY(czas)='.date("d").' GROUP BY ip ORDER by `czas` DESC


lekka modyfkiacja
bahh
nadal wyświetla źle, ciągle sortuje według ip
memory
Pokaż wyniki i oczekiwane jakie mają być
freemp3
Dobrze by było gdybyś pokazał również całą strukturę tabeli
mmmmmmm
SELECT ip, Max(czas) AS czas FROM tabela GROUP BY 1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.