![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Mam pole KEYWORDS zawierające słowa kluczowe oddzielone przecinkiem.
Wybrane słowa oczywiście mogą się powtarzać pomiedzy rekordami. I teraz mój problem polega na tym, że muszę zliczyć liczbę wystąpień dla wszystkich słów kluczowych. przykład rekordy: slowo1, slowo2, slowo 3, slowo4 slowo4, slowo5, slowo6 slowo3, slowo4, slowo5, slowo9 slowo1, slowo5, slowo6 ... wynik: slowo1 -2x slowo2 -1x slowo3 -2x slowo4 -3x slowo5 -3x slowo6 -2x slowo9 -1x ... Jakl coś takiego zrobić? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam pole KEYWORDS zawierające słowa kluczowe oddzielone przecinkiem. Wybrane słowa oczywiście mogą się powtarzać pomiedzy rekordami. Albo możesz to obejść obrzydliwymi hackami w zapytaniu, albo przerobić tabele na znormalizowaną. Znormalizowaną czyli: - dodatkowa tabela z polami (id_keyword, keyword) gdzie trzymasz pojedyncze wpisy dla każdego słowa - zamiast pola keywords w oryginalnej tabeli np. id_keyword_set - dodatkowa tabela z polami (id_keyword_set, id_keyword), która je połączy Czyli normalna normalizacja relacji wiele do wielu. Potem już robisz standardowy count() ... group by - powinno być łatwo. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 03:12 |