Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/10/2020, 10:26
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: comando para no actualizar campo en UPDATE

La sentencia CASE te puede ser útil.

Código MySQL:
Ver original
  1. UPDATE tabla SET
  2.     campo1 = CASE
  3.         WHEN valor1 = x1 THEN campo1 ELSE x1
  4.     END,
  5.     campo2 = CASE
  6.         WHEN valor2 = x2 THEN campo2 ELSE x2
  7.     END,
  8.     campo3 = CASE
  9.         WHEN valor3 = x3 THEN campo3 ELSE x3
  10.     END
  11. WHERE condición

Se evalúa la actualización de cada columna de la tabla, dejando el valor existente en caso de que el valor recibido sea uno en particular y actualizándolo si es diferente. Por ejemplo, si valor1 es igual a x1, se establece como valor para la columna el que actualmente está, es decir, no se altera. Pero si es otro valor (ELSE, como en la sentencia IF-ELSE), se establece el valor de x1 como el nuevo valor de la columna. Y así se va evaluando cada caso.

También podrías utilizar la función IF:

Código MySQL:
Ver original
  1. UPDATE tabla SET
  2.     campo1 = IF (valor1 = x1, campo1, x1),
  3.     campo2 = IF (valor2 = x2, campo2, x2),
  4.     campo3 = IF (valor3 = x3, campo3, x3)
  5. WHERE condición

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 02/10/2020 a las 09:35 Razón: Corrección de enlace