masterphp
18.04.2013, 17:36:43
Witam
--------------------Tabela build-------------------
----Pole--id------------
----Pole--build------------ format zapisu: (43,52,62,65,12,)
Rekordy przykładowe:
Id: 1
build: 43,22,77,54,32,
Id: 2
build: 66,77,23,75,21,32,
Id: 3
build: 66,43,56,12,86,
Muszę pobrać top 5 gdzie najczęściej używana jest jakaś wartość
Np pobierze mi :
77
66
32
43
Rekordów może być 10 000 więc szukam optymalnej w miare opcji.
Nie proszę o gotowca a chociaż o nakierowanie jak to możliwie najlepiej to zrobić?
masterphp
18.04.2013, 17:56:34
Czyli te rozwiązanie przechowywania danych jest złe?
Crozin
18.04.2013, 18:57:53
1. Tak, jest bardzo złe jeżeli chcesz wykonać cokolwiek poza pełnym odczytem tych IDków.
2.
https://www.google.com/search?q=mysql+many+...me&ie=UTF-8 - następnie proste zapytanie z COUNT() i ORDER BY.
masterphp
18.04.2013, 21:54:22
próbuje i próbuje ale wciąż nie znalazłem rozwiązania.
masterphp
19.04.2013, 11:37:43
na sql zapytaniu nie znalazłem rozwiązania..
a co myślicie o tym
odczytuje all rekordy
funkcją explode rozdzielam cyfry i zapisuje w kolejno zmienne np jeśli jest 33 to do zmiennej 33 dodaje wartosc +1
Potem wczytuje ktora zmienna jest najwieksza.
Zapewne obciążę serwer hm..
Cyfry mogą mieć od 1 do 150 max więc nie jest źle ale rekordów może być kilka tysięcy.
Druga sprawa że takie wyliczenie mogę robić raz dziennie tylko a nie ciągle.