O MySQL suporta uma função chamada
GREATEST()
. Ele retorna o maior valor entre uma lista de seus argumentos. UPDATE person SET dollars = GREATEST(0, dollars-20) WHERE id=1
Esta não é uma função padrão no ANSI SQL, portanto, não conte com a disponibilidade em outras marcas de banco de dados SQL. Se você precisar de uma solução independente de fornecedor, use o
CASE
sintaxe sugerida por outros. Mas se tudo que você precisa usar é MySQL, esta função é mais concisa.