Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] UPDATE sumandole su valor actual

Estas en el tema de UPDATE sumandole su valor actual en el foro de Mysql en Foros del Web. Deseo actualizar un campo, sumandole una cantidad a su valor actual. Al campo compras , que ya tiene un valor almacenado, le deseo sumar 1000 ...
  #1 (permalink)  
Antiguo 17/05/2014, 05:01
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
UPDATE sumandole su valor actual

Deseo actualizar un campo, sumandole una cantidad a su valor actual.
Al campo compras, que ya tiene un valor almacenado, le deseo sumar 1000

Mi instrucción sería algo así:

Código MySQL:
Ver original
  1. UPDATE tabla SET
  2. compras = 'compras + 1000'
En caso que si sea posible hacer algo así ¿Cual es la instrucción?
¿Acaso debo primero hacer un SELECT para conocer su actual valor?

Gracias anticipadas.
  #2 (permalink)  
Antiguo 17/05/2014, 05:23
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: UPDATE sumandole su valor actual

Antes de hacer el UPDATE tendrias que sumarle el actual valor con el numero valor a sumar, ejemplo:

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
Y después arias el update:

Código MySQL:
Ver original
  1. UPDATE tabla SET compras = compras+$total_a_insertar

También con esto podrias crear un if else para comprobar si esta vacio el actual añadir solo el valor, si no, sumarlo todo.

Saludos.

Última edición por gnzsoloyo; 17/05/2014 a las 05:33
  #3 (permalink)  
Antiguo 17/05/2014, 05:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: UPDATE sumandole su valor actual

Cita:
Iniciado por Bier Ver Mensaje
Deseo actualizar un campo, sumandole una cantidad a su valor actual.
Al campo compras, que ya tiene un valor almacenado, le deseo sumar 1000

Mi instrucción sería algo así:

Código MySQL:
Ver original
  1. UPDATE tabla SET
  2. compras = 'compras + 1000'
En caso que si sea posible hacer algo así ¿Cual es la instrucción?
¿Acaso debo primero hacer un SELECT para conocer su actual valor?

Gracias anticipadas.
Tu problema en esa query es que estás poniendo una cadena de texto, no el nombre del campo.
Código MySQL:
Ver original
  1. UPDATE tabla SET
  2. compras = compras + 1000
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 17/05/2014, 05:45
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: UPDATE sumandole su valor actual

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Antes de hacer el UPDATE tendrias que sumarle el actual valor con el numero valor a sumar, ejemplo:

Y después arias el update:

Código MySQL:
Ver original
  1. UPDATE tabla SET compras = compras+$total_a_insertar

También con esto podrias crear un if else para comprobar si esta vacio el actual añadir solo el valor, si no, sumarlo todo.

Saludos.
Gracias... Como lo indicas, es como ahora lo hago, pero imagino se puede hacer con una sola instrucción.

Gracias, pero el nombre del campo es: compras
Por ello consulto como se puede crear esta instrucción... ¿o en donde puedo leer algo al respecto?

Gracias anticipadas.
  #5 (permalink)  
Antiguo 17/05/2014, 05:46
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: UPDATE sumandole su valor actual

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Antes de hacer el UPDATE tendrias que sumarle el actual valor con el numero valor a sumar, ejemplo:

Y después arias el update:

Código MySQL:
Ver original
  1. UPDATE tabla SET compras = compras+$total_a_insertar

También con esto podrias crear un if else para comprobar si esta vacio el actual añadir solo el valor, si no, sumarlo todo.

Saludos.
Gracias... Como lo indicas, es como ahora lo hago, pero imagino se puede hacer con una sola instrucción.
  #6 (permalink)  
Antiguo 17/05/2014, 05:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: UPDATE sumandole su valor actual

No puedes consultar y actualizar una tabla en la misma sentencia, al menos en MySQL.
Cuando haces un SELECT sobre una tabla se genera un bloqueo de escritura, por lo que no te permitirá hacerlo. Ese bloqueo se establece por necesidades de consistencia y lo pone el mismo MySQL.
Si necesitas conocer el valor previo antes de actualizarlo, entonces sólo puedes hacer una de dos cosas: 1) Hacer las dos consultas (SELECT y UPDATE) por separado; y 2) POner toda esa lógica y la decisión en un stored procedure, donde tendrás una única llamada desde la aplicación, y todas las acciones que necesites en el SP.

Nota: "Ahorrar" llamadas es el primer paso para hacer sistemas inconsistentes o inseguros.
Codifica todo lo que necesites. No intentes ahorrar pasos innecesariamente porque en algún momento te arrepentirás.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 17/05/2014, 05:50
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: UPDATE sumandole su valor actual

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Tu problema en esa query es que estás poniendo una cadena de texto, no el nombre del campo.
Código MySQL:
Ver original
  1. UPDATE tabla SET
  2. compras = compras + 1000
Algo extraño sucedió y mi mensaje anterior se traslapó con otro. Lo quise editar y no tengo permiso.

Comentaba que el nombre de mi campo es compras
Y mi consulta es como escribir correctamente esta instrucción.
¿alguna parte donde consultar al respecto?

Gracias
  #8 (permalink)  
Antiguo 17/05/2014, 05:51
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: UPDATE sumandole su valor actual

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No puedes consultar y actualizar una tabla en la misma sentencia, al menos en MySQL.
Cuando haces un SELECT sobre una tabla se genera un bloqueo de escritura, por lo que no te permitirá hacerlo. Ese bloqueo se establece por necesidades de consistencia y lo pone el mismo MySQL.
Si necesitas conocer el valor previo antes de actualizarlo, entonces sólo puedes hacer una de dos cosas: 1) Hacer las dos consultas (SELECT y UPDATE) por separado; y 2) POner toda esa lógica y la decisión en un stored procedure, donde tendrás una única llamada desde la aplicación, y todas las acciones que necesites en el SP.

Nota: "Ahorrar" llamadas es el primer paso para hacer sistemas inconsistentes o inseguros.
Codifica todo lo que necesites. No intentes ahorrar pasos innecesariamente porque en algún momento te arrepentirás.
Entreado, muy claro... Gracias infinitas

Etiquetas: actual, campo, select, tabla, update, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:43.