Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Classifica mysql

  1. #1

    Classifica mysql

    Ho una tabella con una serie di elementi che sono classificati per id e "Punteggio".
    Ordinando la tabella by punteggio desc, vorrei prendere tutti gli elementi che sono X elementi prima e X elementi dopo l'oggetto di id=qualcosa.
    Come posso fare?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Credo che più che all'id tu debba fare riferimento a uno specifico punteggio e giocare sugli ordinamenti in base a quello.
    Vedi se una cosa del genere può andar bene

    codice:
    select * from (
    (select * from tabella where punteggio < 10 order by punteggio desc limit 2)
    union
    (select * from tabella where punteggio = 10)
    union
    (select * from tabella where punteggio > 10 order by punteggio limit 2)
    ) as tab order by punteggio desc
    edit. Così puoi fare riferimento direttamente all'id anzichè al suo punteggio

    codice:
    select * from (
    (select * from tabella where punteggio < (select punteggio from tabella where id = 9) order by punteggio desc limit 2)
    union
    (select * from tabella where punteggio = (select punteggio from tabella where id = 9))
    union
    (select * from tabella where punteggio > (select punteggio from tabella where id = 9) order by punteggio limit 2)
    ) as tab order by punteggio desc

  3. #3
    Avevo già pensato alle query nelle query, ma la mia versione di mysql non lo permette
    È una grossa limitazione, ma purtroppo devo trovare una soluzione alternativa..

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    La tua versione di mysql supporta almeno le union?

  5. #5
    È la 4.10.qualcosa...

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.