Because of error 1093 Error 1093 (ER_UPDATE_TABLE_USED) SQLSTATE = HY000.
The work around is to create a temporary table.
CREATE TEMPORARY table foo_bak (SELECT baz from foo WHERE fooID='1');
UPDATE foo
SET foo.bar=foo.bar-1
WHERE foo.baz =
(
SELECT baz
FROM foo_bak
);
DROP TABLE foo_bak;