Вы не можете обновить информацию, полученную. Если вы хотите, чтобы отобразить различное число от того, что вы получены, вы можете сделать это:
select
user_id,
case
when totals < 500 then 500
else totals
end as totals
from (
select user_id, sum(points_balance) as totals
from test
-- where user_id = 10
group by user_id
having totals between 400 and 499
) t
-- where user_id = 10;
+---------+--------+
| user_id | totals |
+---------+--------+
| 10 | 500 |
+---------+--------+
Если результат
select user_id, sum(points_balance) as totals
from test
-- where user_id = 10
group by user_id
having totals between 400 and 499;
является
+---------+--------+
| user_id | totals |
+---------+--------+
| 10 | 420 |
+---------+--------+
, и вы хотите, чтобы поднять это до 500, вы знаете, что разница между 500 и 420 составляет 80. Поэтому вставьте новую запись:
insert into test (user_id, points_balance) values (10, 80);
или обновить одну из записей в:
update test set points_balance = points_balance + 80
where user_id = 10 and points_balance = 120;
Вопрос следует - какой из многочисленных записей в течение 10 будет обновлять? Надеюсь, у вас есть идентификатор, чтобы однозначно идентифицировать каждую строку. Если у вас есть это, обновите строку с наименьшим id. Если у вас нет поля, которое однозначно идентифицирует каждую строку, это будет подходящее время для создания одного такого поля.
Чтобы сделать это за один выстрел, вы должны создать хранимая процедура или написать скрипт в PHP/Python/на любом языке, который вам удобен.
Редактировать свой вопрос и предоставить результаты поиска. –
вы можете объяснить, в чем проблема: – essanousy
Итак, вы хотите увеличить 1 из строк (если это так, какая строка?) Или добавить новую строку, чтобы увеличить ее до 500? – Sean