Tengo una declaración de actualización que actualiza los campos x, y y z donde id = xx.Campo de actualización cuando no es nulo
En la tabla tengo algunos campos x_created_datetime diferentes (para diferentes partes del registro que son mantenidas/ingresadas por diferentes personas). Me gustaría escribir una sola consulta que actualice este campo si es nulo, pero déjelo en blanco si no es nulo.
Así que lo que tengo es:
UPDATE newspapers
SET scan_notes = "data",
scan_entered_by = "some_name",
scan_modified_date = "current_unix_timestamp"
WHERE id = X
Lo que necesito es una manera de añadir en la siguiente, pero aún así siempre actualizar la anterior:
scan_created_date = "current_unix_timestamp"
where scan_created_date is null
que espero que pueda hacer esto sin una segunda transacción a la base de datos. ¿Alguna idea sobre cómo lograr esto?
Vale la pena una breve explicación de por qué esto funciona: se unen devuelve el primer valor no nulo en su lista de valores, por lo que si el scan_created_date ya está ahí , se establecerá al valor que ya está allí. Si es nulo, se establecerá a la marca de tiempo actual. –
¿No actualizará esto el scan_created_date cuando sea nulo? Parece que quiere actualizarlo donde no es nulo. – tloach
@tloach - vea la explicación. @JacobM - ya lo estaba haciendo :) – cjk