Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyświetlenie rekordów podobnych - jak?
pitbull82
post
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

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


Witam

Mam problem, nie bardzo wiem jak go rozwiązać. Mam w bazie użytkowników. Każdy użytkownik powiedzmy że może określić 10 cech - każda z cech ma do 50 opcji np. 1,2,3,4, ... 50. Chciałbym móc wyświetlić użytkowników, którzy mają jak najwięcej takich cech jak ja, najpierw tych którzy mają 10 identycznych, potem 9, potem 8 itd. Pytanie czy da się jakoś sensownie to przechować w tabeli żeby móc sortować w locie w mysqlu tabele czy może trzeba coś bardziej skomplikowanego wymyślić? Macie jakiś pomysł na rozwiązanie tego problemu?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak już to przeprojektuj tabele na taką strukture
Kod
id_user, nr_answer, answer, weight


A wtedy wyszukujesz tak
  1. SELECT id_user, sum(weight) AS total_weight
  2. FROM tabela WHERE (nr_answer =1 AND answer = "wartosc") OR (nr_answer=2 AND answer = "wartosc2") (.itd)
  3. GROUP BY id_user
  4. ORDER BY total_weight DESC


Indeksy:
INDEX (nr_answer, answer, id_user)
Powinno styknąć.
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: 30.12.2025 - 09:39