My MySQL query is throwing an error if goaldiff is -ve. It is a signed smallint column. gfor and gagainst are unsigned tinyint columns.
The error is
1690: BIGINT UNSIGNED value is out of range
SET played = played + 1, won = won + 0, drawn = drawn + 0, lost = lost + 1,
gfor = gfor + 0, gagainst = gagainst + 4,
goaldiff = CAST(gfor-gagainst AS SIGNED),
points = points + 0
WHERE abbrev = 'Staplehurst Monarchs'
Any help appreciated!