Cita:
Iniciado por gnzsoloyo No puedes consultar y actualizar una tabla en la misma sentencia, al menos en MySQL.
Cuando haces un SELECT sobre una tabla se genera un bloqueo de escritura, por lo que no te permitirá hacerlo. Ese bloqueo se establece por necesidades de consistencia y lo pone el mismo MySQL.
Si necesitas conocer el valor previo antes de actualizarlo, entonces sólo puedes hacer una de dos cosas: 1) Hacer las dos consultas (SELECT y UPDATE) por separado; y 2) POner toda esa lógica y la decisión en un stored procedure, donde tendrás una única llamada desde la aplicación, y todas las acciones que necesites en el SP.
Nota: "Ahorrar" llamadas es el primer paso para hacer sistemas inconsistentes o inseguros.
Codifica todo lo que necesites. No intentes ahorrar pasos innecesariamente porque en algún momento te arrepentirás.
Entreado, muy claro... Gracias infinitas