Witam.
Ostatnio tak myślę nad jednym zapytaniem, lub kilkoma.. lub czymkolwiek.. co prawdopodobnie będę potrzebował. Nie mogę jakoś wymyślić nic sensownego. Aczkolwiek, nie jest to chyba proste zadanie ;-)
Powiedzmy, że mamy taką tabelę mysql:
id | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | n
Id standardowo będzie zwiększane o 1 przy dodawaniu nowego szeregu danych, a w komórkach 1,2,3 itd będą wstawiane tylko i wyłącznie cyfry typu INT. Prawdopodobnie przedział od 1 - 9, chociaż myślę, że nie ma to tutaj znaczenia. Jak widać na końcu dałem n, bo z czasem ilość kolumn tabeli może się zwiększać o dalsze, nazwane n+1 i także zawierające INT.
Więc dajmy na to, niech na początku będzie id i 8 kolumn odnośnie danych. (i = id, skróciłem aby "tabela" była równa ;-))
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
1 | 3 | 3 | 3 | 0 | 1 | 3 | 2 | 1
2 | 2 | 2 | 5 | 1 | 2 | 9 | 5 | 2
3 | 3 | 3 | 3 | 0 | 2 | 4 | 1 | 5
4 | 3 | 3 | 3 | 4 | 1 | 3 | 2 | 0
I teraz główna kwestia. Wybieramy sobie jakiś szereg, np. o id 1 i według niego szukamy n najbardziej pasujących do niego. Czyli tutaj dla przykładu, najwięcej zgadza się z szeregiem 4, bo 75% liczb w kolumnach się pokrywa, później szereg 3 - 50% no i na końcu szereg 2, który ma 0% zgodności. Limit to np. 10 najbardziej trafnych wyników. Wszystko posortowane od najtrafniejszego do najmniej trafnego. I także wynik procentowy względem każdego wyszukanego wyniku. (Wiadomo także, że może się okazać, iż jest więcej szeregów pasujących procentowo.)
Mam nadzieję, że każdy zrozumie o co mi chodzi ;->
Jakby ktoś miał pomysły, jak takie coś uzyskać, to chętnie posłucham ;-)
Pozdrawiam.