- Home
- Categorie
- Coding e Sistemistica
- Coding
- query sql che incrementa un campo
-
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 Pandianimysql> 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)
INSERT INTO `classifica`
WHERE
nomesq
= "Fantasiosa" ON DUPLICATE
KEYpunti
=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
KEYpunti
=punti
+3' at line 2ho provato anche qualcosa del genere
UPDATE `classifica` WHERE `nomesq` = 'Bob Marley F.c.' SET `punti` = `punti` +1;
ma mi restituisce sempre l'errore, qualcuno mi sa aiutare?
-
Prova cosi:
[php]
INSERT INTOclassifica
WHEREnomesq
= "Fantasiosa" ON DUPLICATE
KEY UPDATEpunti
=punti
+3;
[/php]
-
**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
-
ci sono riuscito la query giusta è
UPDATE classifica SET punti = punti +1 WHERE nomesq = "Fantasiosa"
EVVAIII