首页 > 解决方案 > 如何在单个查询中更新mysql同一列中的不同值?

问题描述

我有一个表名测试,在 mysql db 中有两个列 ID 和计数。我想在单个查询中执行类似下面的操作(我知道这不起作用)。

UPDATE test
SET 
    count = (1, 2, 3)
WHERE
    id IN (5, 8, 9);

我可以CASE在 count 和 id 固定时使用,但在我的情况下它们会改变,所以我不能使用它。给定示例,它们有 3 个值,但它可能在 1 到 10 之间变化。如果有人知道如何在单个查询中执行此操作,请提供帮助。

标签: mysqlsqlsql-update

解决方案


如果您有很多对值,一种解决方案是将它们存储在单独的表中,然后将其加入更新查询中:

update test t
inner join mapping m on m.id = t.id
set t.count = m.count

推荐阅读