+ Rispondi alla Discussione
Risultati da 1 a 4 di 4

query sql che incrementa un campo

Ultimo Messaggio di mentos il:
  1. #1
    User Newbie
    Data Registrazione
    Jan 2009
    Messaggi
    4

    query sql che incrementa un campo

    Salve a tutti sono un nuovissimo utente, o meglio ho perso l'account che qualche volta ho usato
    Ho una domanda per voi , sto scrivendo uno script php che mi permetta di gestire una classifica, la classifica è una tabella in un database mysql con un campo "nomesq" che contiene l'identificativo della squadra e il campo "punti" intero (ci sono altri campi ma il problema è qui).
    Vorrei scrivere una query che mi permettesse di aumentare il campo punti di zero, 1 o 3 punti a seconda dell'esito dell'incontro odierno, inizialmente avevo pensato di recuperare il campo punti con una prima query , incrementarlo di zero , 1 o 3 punti e fare una nuova query settando il campo punti col nuovo valore ,risultato della somma.
    Vorrei però scrivere una sola query!Ho cercato e trovato qualcosa del genere su un altro forum grazie al contributo di un certo Corrado Pandiani
    Codice:
    mysql> insert into t(id) values(1),(2),(3);
    Query OK, 3 rows affected (0.00 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> select * from t;
    +----+-------+
    | id | campo |
    +----+-------+
    |  1 |     0 |
    |  2 |     0 |
    |  3 |     0 |
    +----+-------+
    3 rows in set (0.01 sec)
    
    
    mysql> insert into t(id) values(3) on duplicate key update campo=campo
    +1;
    Query OK, 2 rows affected (0.00 sec)
    
    mysql> insert into t(id) values(3) on duplicate key update campo=campo
    +1;
    Query OK, 2 rows affected (0.00 sec)
    
    
    Ecco il risultato dei due insert precedenti
    
    mysql> select * from t;
    +----+-------+
    | id | campo |
    +----+-------+
    |  1 |     0 |
    |  2 |     0 |
    |  3 |     2 |
    +----+-------+
    3 rows in set (0.00 sec)
    ed è esattamente quello che voglio fare io solo che non riesco a farlo con phpmyadmin.
    HO scritto questa query(da phpmyadmin e non dalla mia pagina php , per provare il funzionamento)
    Codice:
              INSERT  INTO  `classifica` 
    WHERE  `nomesq`  =  "Fantasiosa" ON  DUPLICATE 
    KEY  `punti`  =  `punti`  +3;
    ma non funziona e phpmyadmin mi restituisce il messaggio d'errore
    Codice:
     Messaggio di MySQL: 
      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `nomesq` = "Fantasiosa" ON DUPLICATE
    KEY `punti` = `punti` +3' at line 2
    ho provato anche qualcosa del genere
    Codice:
             UPDATE  `classifica`  WHERE  `nomesq`  =  'Bob Marley F.c.' SET  `punti`  =  `punti`  +1;
    ma mi restituisce sempre l'errore #1064, qualcuno mi sa aiutare?
    Ultima modifica di mentos; 20-01-09 alle 19:24

  2. #2
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Prova cosi:
    Codice PHP:
    INSERT  INTO  `classifica
    WHERE  `nomesq`  =  "Fantasiosa" ON  DUPLICATE 
    KEY  UPDATE 
    `punti`  =  `punti`  +3

  3. #3
    User Newbie
    Data Registrazione
    Jan 2009
    Messaggi
    4
    Codice:
    Errore
    
         query SQL:     
                  INSERT  INTO  `classifica` 
    WHERE  `nomesq`  =  "Fantasiosa" ON  DUPLICATE 
    KEY  UPDATE  `punti`  =  `punti`  +3     
          Messaggio di MySQL:  
      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE  `nomesq`  =  "Fantasiosa" ON  DUPLICATE 
    KEY  UPDATE `punti`  =  `punti`' at line 2
    Errore...ho copia incollato la tua query ma niente

  4. #4
    User Newbie
    Data Registrazione
    Jan 2009
    Messaggi
    4
    ci sono riuscito la query giusta è
    Codice:
        UPDATE classifica SET punti = punti +1 WHERE nomesq =  "Fantasiosa"
    EVVAIII

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.