Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714

    [MySQL] - UPDATE +1 raggiunto un tetto limite

    Salve a tutti,
    ho la seguente tabella "punteggi":

    id_user, punteggio, percentuale

    Valorizzata in questo modo

    1, 1, 89.60

    Eseguendo la query

    UPDATE punteggi SET percentuale=percentuale+2 WHERE id_user = 1

    Mi aumenta la percentuale. Come faccio a mettere un controllo che dica alla query, se aggiornando di 2, il risultato è >= 100, aumenta di +1 anche il punteggio?

    Un saluto,
    Antonio

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così

    codice:
    update tabella set 
    punteggio = 
    case
    when percentuale+2 >=100 then punteggio+1 else punteggio
    end,
    percentuale = percentuale+2
    where id_user=1
    Attenzione che una volta superata quota 100, per ogni ulteriore incremento di 2 punti percentuali, verrà incrementato di 1 anche il punteggio. Non so se è questo che vuoi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    Eh in effetti, la percentuale, superata 100, dovrebbe tornare a 0.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    E' decisamente bruttina ma non mi viene in mente altro.

    codice:
    update tabella set 
    punteggio = 
    case when percentuale+2 >=100 then punteggio+1 else punteggio
    end,
    percentuale = percentuale+2,
    percentuale = 
    case when percentuale>=100 then percentuale - 100 else percentuale end 
    where id_user=1
    edit.

    Così va un pò meglio.

    codice:
    update tabella set 
    punteggio = 
    case when percentuale+2 >=100 then punteggio+1 else punteggio
    end,
    percentuale = 
    case when percentuale+2 >=100 then percentuale+2-100 else percentuale+2 end 
    where id_user=1

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    Ottimo! Thanks

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 © 2026 vBulletin Solutions, Inc. All rights reserved.