Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Jak sprawdzić, ile razy występuje dany rekord (ciąg) w zbiorze ?
Greg23
post
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 6.04.2012

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


Mam tabele o takim schemacie:

id, nazwa, data
1, blablabla, 2012-04-12 18:26:33
2, blablabla, 2012-04-12 18:27:56
itd.

Chciałbym pobrać wszystkie rekordy z danego dnia (załóżmy z 12 kwietnia) i posortować je w sposób malejący (w zależności od ilości wystąpień).

Chodzi o to, że nazwy (wyszukiwane frazy) się powtarzają i w danym dniu może być wiele wyszukiwań na taką samą frazę.
Jak w takim razie posortować te dane tak, żeby identyczne rekordy się zsumowały, czyli na przykładzie mamy 2 razy blablabla -> powinno zostać
to zamienione na 1 rekord o nazwie blablabla i liczniku 2 (bo 2 takie same rekordy).
Oczywiście wszystko zapisywane w osobnej tabeli.

Czy jest jakaś funkcja która segreguje identyczne dane w zbiorze w w/w sposób ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Greg23
post
Post #2





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 6.04.2012

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


Mam osobną tabele w której fraza jeśli już kiedyś była wyszukiwana to nie dodaje nowego rekordu,
tylko aktualizuje poprzedni (chociaż w bardziej prymitywny sposób niż podałeś, bo 1 zapytanie sprawdza czy jest taki rekord a następne ewentualnie go aktualizuje, czyli zwiększa jego licznik), jednak to nie nadaje się do robienia dziennych statystyk bo data, to zawsze data 1 wyszukiwania danej frazy, więc nie zrobię listy szukanych w danym dniu.
Muszę więc to zrobić inaczej.
Znam GROUP BY i COUNT ale jak to wykorzystać do pogrupowania fraz ?

/EDIT/

Na myśli przychodzi mi tylko jeden sposób.
Pobieranie wszystkich możliwych rekordów sprawdzanie ich po kolei, czyli wyglądało by to mniej więcej tak:
- bierzemy 1 rekord i porównujemy ze wszystkimi pozostałymi, jeśli są powtórzenia to zliczamy ich liczbę i wstawiamy do kolumny
'licznik' dla 1 rekordu a powtórzenia kasujemy, następnie bierzemy 2 rekord i znowu go porównujemy zliczając liczbę wystąpień identycznych wpisów itd...

Ale to wykombinowałem tak na "chłopski rozum".
Naprawdę nie ma funkcji lub prostszego sposobu na posortowanie wyników w ten sposób ?

Ten post edytował Greg23 13.04.2012, 11:41:10
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 02:09