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

Ayuda consulta: Intercambiar dos valores

Estas en el tema de Ayuda consulta: Intercambiar dos valores en el foro de Mysql en Foros del Web. Hola, mi pregunta es sencilla, a la vez que tonta, pero hoy estoy bloqueado y no me sale nada. Quiero "intercambiar" dos valores de una ...
  #1 (permalink)  
Antiguo 14/10/2008, 09:37
 
Fecha de Ingreso: junio-2006
Mensajes: 12
Antigüedad: 17 años, 10 meses
Puntos: 0
Ayuda consulta: Intercambiar dos valores

Hola, mi pregunta es sencilla, a la vez que tonta, pero hoy estoy bloqueado y no me sale nada.

Quiero "intercambiar" dos valores de una fila en una misma sentencia update:

update quiniela_pronosticos set goleslocal=golesvisitante, golesvisitante=goleslocal where IDpartido=xxx

Esto no funciona porque cuando voy a hacer la modificación del segundo campo, goleslocal ya ha cambiado su valor en la primera asignación.

Saludos
  #2 (permalink)  
Antiguo 14/10/2008, 11:31
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: Ayuda consulta: Intercambiar dos valores

Ese tipo de operaciones lo debes hacer por Store Procedure o en un Trigger.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/10/2008, 11:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda consulta: Intercambiar dos valores

Aunque seguro que hay contraindicaciones y lo mejor será que lo hagas con un store precedure, como te dice gnzsoloyo, también podrías intentarlo con esta sintaxis:
Código sql:
Ver original
  1. UPDATE quiniela_pronosticos  t1, quiniela_pronosticos  t2 SET t1.goleslocal = t2.golesvisitante, t1.golesvisitante = t2.goleslocal WHERE t1.IDpartido=xxx

Última edición por jurena; 14/10/2008 a las 12:08
  #4 (permalink)  
Antiguo 14/10/2008, 12:11
 
Fecha de Ingreso: junio-2006
Mensajes: 12
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Ayuda consulta: Intercambiar dos valores

Muchas gracias a los dos.

La verdad es que para una consulta tan sencilla me da pereza hacer un procedure, de hecho en dos consultas con PHP se hace en un momento.

Sólo era la curiosidad de si se podía hacer en una única consulta.

La solución de jurena parece que funciona bien, es cuestión de evaluar los posibles efectos secundarios que pueda tener, pero en principio me la quedo.

Un saludo
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 11:40.