是否可以通过一次查询更新和增加多行的值?
我有下表服务:
id | name | count | created_at | updated_at
每次用户在搜索中选择某些服务时,我都想更新计数(这是通过 GUI 完成的,用户可以选择一项或多项服务,我正在获取服务的 ID)。
当选择了多个服务时,我可以对每个服务执行单个查询,但这似乎不是很有效。
例子:
我需要一次更新 7 个服务并增加每个服务的计数值:
UPDATE services SET count = count + 1 WHERE id = 28
UPDATE services SET count = count + 1 WHERE id = 29
UPDATE services SET count = count + 1 WHERE id = 39
UPDATE services SET count = count + 1 WHERE id = 44
UPDATE services SET count = count + 1 WHERE id = 296
UPDATE services SET count = count + 1 WHERE id = 294
UPDATE services SET count = count + 1 WHERE id = 111
是否可以在一次查询中执行此更新?
最佳答案
i need to update 7 services at once and increment the count value for each of them:
UPDATE services SET count = count + 1 WHERE id = 28
UPDATE services SET count = count + 1 WHERE id = 29
UPDATE services SET count = count + 1 WHERE id = 39
UPDATE services SET count = count + 1 WHERE id = 44
UPDATE services SET count = count + 1 WHERE id = 296
UPDATE services SET count = count + 1 WHERE id = 294
UPDATE services SET count = count + 1 WHERE id = 111
Is it possible to perform this update in one query?
可以重写为一个查询。
查询
UPDATE
services
SET
count = count + 1
WHERE
id IN(28, 29, 39, 44, 296, 294, 111)
关于MySQL - 使用一个查询增加多行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52257470/