Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Szukanie dubli w jednej kolumnie, i różnic w drugiej
nyfko
post 29.07.2014, 14:14:51
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.07.2014

Ostrzeżenie: (0%)
-----


Cześć wszystkim. Mam taki problem, że chcę u siebie na forum napisać prostą funkcję do wyłapania dubli kont na podstawie IP. Dlatego dodałem nową tabelę, która ma zapisywać wszystkie logowania (by nie brało pod uwagę tylko ostatniego ip). Są to kolumny id, user_id, ip, date. I wszystko super, tylko co dalej.

W necie znalazłem sporo informacji, jak znaleźć powtarzające się rekordy na podstawie kolumny, np. za pomocą grupowania. Problem w tym, że to musi jednocześnie ignorować powtórzenia o tym samym ID użytkownika, tak by wyłapało to samo IP ale dla różnych kont.

Przykład logu z logowań użytkowników: (id usera - ip)
25 192.168.1.13
25 192.168.1.13
59 192.168.20.18
44 192.168.1.13
25 192.168.1.13
128 127.0.0.1
255 192.168.0.22
99 127.0.0.1

W tym przypadku mamy 4 powtórzenia IP "192.168.1.13" oraz 2 powtórzenia IP 127.0.0.1 ale zamiast zwracać tych 6 rekordów, to powinno zwrócić dwie grupy - dwóch użytkowników 25 i 44 oraz 128 i 99 bo występują u nich te same kolumny IP.

Jak tego najszybciej i najprościej dokonać, by ograniczyć się w ilości zapytań? Da się te wszystkie duble zwrócić za pomocą jednego zapytania, tak bym nie musiał najpierw pobierać tabeli a potem sprawdzać każdego rekordu po kolei za pomocą PHP?

Ten post edytował nyfko 29.07.2014, 14:16:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post 29.07.2014, 14:19:21
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to zamiast grupowac po jednym polu, grupuj po dwoch
... group by pole1, pole2


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Michael2318
post 29.07.2014, 14:21:54
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/questions/5543977...rom-the-same-ip
Go to the top of the page
+Quote Post
mmmmmmm
post 29.07.2014, 14:37:11
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


  1. SELECT ip, group_concat(DISTINCT user_id separator ',') FROM tabela GROUP BY 1

słowo klucz - DISTINCT

Ten post edytował mmmmmmm 29.07.2014, 14:37:40
Go to the top of the page
+Quote Post
nyfko
post 29.07.2014, 14:58:40
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.07.2014

Ostrzeżenie: (0%)
-----


Wielkie dzięki smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:16