Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nietypowe zliczanie
Forum PHP.pl > Forum > Bazy danych > MySQL
neverever
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ć?
smarcz
zerknij na mój post - Temat: COUNT sortowanie wynikow - ja stosuje do moje tabeli zapytanie


  1. SELECT DISTINCT(slowo_klucz) AS `klucze`, COUNT(slowo_klucz) AS `ile` FROM `test_slowa_klucze` GROUP BY slowo_klucz
  2.  
  3. +---------------+-----+
  4. | klucze | ile |
  5. +---------------+-----+
  6. | Dom | 1 |
  7. | Dramers | 2 |
  8. | MAN | 1 |
  9. | Man | 2 |
  10. | Nowe | 7 |
  11. | Perfect | 3 |
  12. | Szukam | 1 |
  13. | S􏺳awek | 1 |
  14. +---------------+-----+
viraptor
Cytat(neverever @ 7.09.2007, 13:27:06 ) *
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.
php programmer
Jeśli nie za bardzo możesz prerobić, tabele,
to możesz stworzyć widok, w którym każde słowo jest oddzielne,
do stworzenia widoku używasz fukcji extract o ile istnieje
lub jakiegoś jej odpowiednika
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.