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

★★★ update de valor autoreferenciado ★★★

Estas en el tema de ★★★ update de valor autoreferenciado ★★★ en el foro de Mysql en Foros del Web. buenas tardes, nececito hacer un update autoreferenciado algo asi como update datos set valor = (select valor from datos where id = 1 AND campo= ...
  #1 (permalink)  
Antiguo 28/10/2011, 18:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 120
Antigüedad: 15 años, 1 mes
Puntos: 1
★★★ update de valor autoreferenciado ★★★

buenas tardes, nececito hacer un update autoreferenciado algo asi como

update datos set valor = (select valor from datos where id = 1 AND campo= 3)
WHERE campo = 3

en la mismsa tabla hay un valor que quiero actualizarlo para los demas campos

seria lo mismo que

$ddato = select valor from datos where id = 1 AND campo= 3

update datos set valor =$ddato WHERE campo = 3

pero no quiero hacer 2 querys sino que lo quiero en 1 solo, se puede hacer

solo quiero saber si se puede hacer, no estoy abierto a otras opciones.
  #2 (permalink)  
Antiguo 28/10/2011, 21:40
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 de valor autoreferenciado ★★★

No se entiende mucho lo que quieres hacer pero desde ya te advierto una cosa: MySQL no admite que se lea y actualice la misma tabla en la misma sentencia.
Esto significa que no puedes hacer esto:

Código MySQL:
Ver original
  1. update datos set valor = (select valor from datos where id = 1 AND campo= 3)
  2. WHERE campo = 3
Si tu problema es que no quieres realizar dos ejecuciones, una para buscar el dato y otra para actualizarlo, entonces simplemente mételas en un stored procedure. Tendrías una sola llamada desde el programa, pero se ejecutarían en el servidor las dos sentencias como una sola operación...

¿No te parece más simple?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campos, query, select, tabla, update
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 16:04.