2011-04-14 15 views
11

¿Es posible obtener el valor actual de un campo, usarlo como una variable en un cálculo, y luego actualizar el campo según el resultado?¿Cómo actualizar un campo basado en su valor actual en MySQL?

Por ejemplo, el registro con el ID "1" en la Tabla 1 tiene un valor de "2"

SELECT table1 
WHERE ID = "1" 
SET RESULT to CurrentID 
RESULT = CurrentID + 1; 

Respuesta

12

Esto establecerá la columna de la result al valor de la columna de CurrentID (más 1) de la misma fila, para cualquier fila que tiene una columna de ID que es igual a "1":

UPDATE table1 
SET result = CurrentID + 1 
WHERE ID = "1" 
4

Usted puede tratar de

Update table1 set ID = ID+1 where ID = 1 
+0

¿Por qué no haría simplemente 'SET ID = 2 WHERE ID = 1'? – JNK

+0

Supongo que lo que estoy diciendo es que si solo está haciendo una 'ID' a la vez, entonces puede establecer un valor explícito y omitir el cálculo – JNK

+0

@JNK: No, no estoy haciendo un valor a la vez, mi el código de ejemplo era bastante pobre, ni siquiera estaba seguro de si esto era posible, así que traté de mantener el código lo más simple posible. El código de John K. parece funcionar, aunque no puedo hacer que Oded funcione. – blunders

Cuestiones relacionadas