MySQL admite una función llamada GREATEST()
. Devuelve el valor más grande entre una lista de sus argumentos.
UPDATE person SET dollars = GREATEST(0, dollars-20) WHERE id=1
Esta no es una función estándar en ANSI SQL, así que no cuente con que esté disponible en otras marcas de bases de datos SQL. Si necesita una solución independiente del proveedor, use el CASE
sintaxis sugerida por otros. Pero si todo lo que necesita usar es MySQL, esta función es más concisa.