2012-10-05 26 views
15

Cómo actualizar campo para añadir valor al valor existente?
Por ejemplo tengo¿Cómo actualizar el campo para agregar valor al valor existente?

Nombre de la tabla: table

id credit 
1  4 
2  5 
3  3 

¿Hay una manera de añadir valor a simplemente el crédito?
como

UPDATE table SET credit = '+7' WHERE id='1' 

Quiero añadir 7 a 4 para que el crédito = 11 donde id = '1'
Cómo hacer esto?

+3

cuál es la diferencia entre su respuesta aceptada que la mía? –

Respuesta

37
UPDATE table SET credit = credit + 7 WHERE id = 1 
+0

jeje ... nunca pensé en esto. : D – gumuruh

15

Esto es sólo un simple UPDATE. Prueba lo siguiente.

UPDATE tableName 
SET Credit = Credit + 7 
WHERE ID = 1 

nota que ID = 1 y ID = '1' es el mismo que el servidor analiza automáticamente.

+0

¿no es cierto buena idea para poner en '1' ID = 1 en comilla simple como' ID = '1'', para que duerma una consulta lanzar un error si encajonar el valor de ID no está definido? – WatsMyName

+1

el servidor analiza automáticamente ese valor: D –

10

Utilice simplemente credit = credit + 7 en lugar de credit = '+7' en UPDATE comunicado

UPDATE tablename SET credit = credit + 7 WHERE id = 1 

See this SQLFiddle

7

probar este código

UPDATE table SET credit = credit + 7 WHERE id='1' 
3

Intenta esto ...

UPDATE table SET credit = credit + 7 WHERE id = 1 
1

así '+' es un operador de modo u necesidad de proporcionar el parámetro que requiere. operador '+' es un operador binario por lo tanto tenemos que proporcionar dos parámetros para que con la sintaxis

value1+value2 

aunque esto puede tomar parámetros de muchos tipos de datos escribiendo '7' que está enviando sólo valor de cadena "7" la sustitución de su valor anterior

modo u utilizar mejor

UPDATE table SET credit = '+7' WHERE id='1' 

no confunda '+' operador con otros operadores de incremento

1

que quería añadir a esto con un ejemplo en 'ON DUPLICATE KEY UPDATE' (basado en la respuesta por @ hims056). Encontré esta respuesta, pero necesitaba 'EN REPRODUCCIÓN ...', así que pensé que podría publicarla aquí.

INSERT INTO table1 
(`id`, `credit`) 
VALUES (1, 4) 
ON DUPLICATE KEY UPDATE 
`credit` = `credit` + 7; 

See the SQL Fiddle here

+1

Gracias por la publicación. ¡Salvaste mi día! – Razvi

Cuestiones relacionadas