UPDATE `foo` SET item_value = ( SELECT item_value FROM `foo` WHERE item_id = 3) WHERE item_id = 2896
Generated the following error:
#1093 - You can't specify target table 'foo' for update in FROM clause
You cannot change a table (DELETE or UPDATE) and SELECT from it at the same time. Given the way mysql treats sub-queries, there is no guarantee of the state the table will be during the SELECT stage.
Instead, use two queries: one to SELECT the value, the second to UPDATE it.