Saltar al contenido

MySQL: actualice un campo solo si se cumple la condición

Revisamos de forma cada enunciado de nuestra web con el objetivo de enseñarte en todo momento la información certera y actualizada.

Solución:

¡Sí!

Aquí tienes otro ejemplo:

UPDATE prices
SET final_price= CASE
   WHEN currency=1 THEN 0.81*final_price
   ELSE final_price
END

Esto funciona porque MySQL no actualiza la fila, si no hay cambios, como se menciona en los documentos:

Si establece una columna en el valor que tiene actualmente, MySQL lo nota y no lo actualiza.

Otra solución que, en mi opinión, es más fácil de leer sería:

UPDATE test 
    SET something = 1, field = IF(condition is true, 1, field) 
    WHERE id = 123

Lo que esto hace es establecer ‘campo’ en 1 (como OP usado como ejemplo) si se cumple la condición y usar el valor actual de ‘campo’ si no se cumple. Usar el valor anterior es lo mismo que no cambiar, así que ahí lo tienes.

Prueba esto:

UPDATE test
SET
   field = 1
WHERE id = 123 and condition

Si te ha sido de ayuda nuestro post, sería de mucha ayuda si lo compartieras con más seniors de esta forma contrubuyes a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *