2010-04-21 11 views
11

Tengo una tabla llamada pollData. Siempre contendrá solo 1 fila. Tiene columnas option1, option2, option3, option4, option5 cada una de tipo int. Al principio, estas columnas tienen 0 como su valor. ¿Cómo agrego 1 a cualquier columna, por ejemplo, opción2? Quiero decir, ¿recupero el valor de esa columna primero, realizo una adición y la guardo de nuevo, o hay alguna función de incremento automático?Cómo agregar 1 al valor de una columna de una fila existente en mysql

+0

¿Está trabajado en mi solución resultado? Está en la parte de respuesta. – Karthik

+0

No. No lo probé. La solución de Astander parecía perfecta. Además, no creo que funcione, ya que todas mis opciones ya están configuradas en 0 al principio. isset (..) siempre volverá verdadero. – mithun1538

Respuesta

27

Puede intentar con un UPDATE normal, y simplemente reemplace la opción de columna en cuestión.

UPDATE pollData SET option2 = option2 + 1 
+0

esta es la razón por la que me encanta MySQL – DavidJB

+1

Dentro de una transacción, claro. No desnudo solo. –

1

como no se puede probar:

if(isset($option1)) { 
     $optadd = " option1 = option1+1"; 
    } else if(isset($option2)) { 
     $optadd = " option2 = option2+1"; 
    } 

UPDATE `tablename` SET ".$optadd." WHERE fieldname = '1' 
Cuestiones relacionadas