Один из способов обновления всех строк, которые возвращаются подзапросом, - это использование оператора IN вместо оператора =. Вот пример запроса, который вы можете использовать:
UPDATE `bank`
SET `money2` = `money2` + 2
WHERE `uid` IN (SELECT `id` FROM `users` WHERE `online` > 0);
UPDATE `bank` SET `money2`=`money2`+2 WHERE `uid` = ( SELECT `id` FROM `users` WHERE `online` > 0); DESC;
в ответе ошибка
#1242 - Подзапрос возвращает более одной записи
Как перестроить запрос чтоб обновляла все вернувшие значения?