Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [MySql] Contare valori uguali nelle righe

    Salve a tutti,
    ho due tabelle con la seguente struttura:

    Tabella 1: risposte

    User, Domanda1, Domanda2, Domanda3, Domanda4, Domanda5, Bonus

    Tabella 2: soluzioni

    Id, Soluzione1, Soluzione2, Soluzione3, Soluzione4, Soluzione5

    User e Id sono le rispettive chiavi primarie

    Nella tabella 1 ci sono le risposte ad alcune domande a cui l'utente ha risposto, le risposte sono numeriche da 1 a 4. il bonus è un altro intero che può valere da 0 a X (specificato per tutta l'applicazione).
    Nella tabella 2 ci sono le soluzioni in una sola riga, sempre valori numerici da 1 a 4.

    Io devo creare una classifica che si basi sul numero di risposte esatte in particolare:

    Contare quanti valori dell'utente sono uguali alla riga di soluzioni
    Ordinare per questo numero
    Aggiungere eventuali bonus
    Ordinare per il valore totale (soluzioni + bonus).

    Come risolvereste il problema?

    Grazie a chi mi risponderà.

    ps: la soluzione dovrebbe essere scalabile. Il numero di domande è indicativo ma può aumentare. Ovviamente è fisso, ogni applicazione avrà un numero preciso di domande rappresentato nelle colonne del database, ma la query che sto cercando dovrebbe comprendere il caso 5 ma anche il caso 50! Grazie ancora.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    select * from (select r.user,(if(r.Domanda1=s.Soluzione1,1,0)+if(r.Doman da2=s.Soluzione3,1,0)+...+r.bonus) as punti from risposte r,soluzioni s where r.user=s.Id) a order by punti DESC

    Scalabilissima, basta che tu aggiung a manina (o con apposito linguaggio di programmazione) tutti i campi occorrenti
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.