当前位置: 首页 > 面试题库 >

使用一个查询更新多行?

关冠宇
2023-03-14
问题内容

我在这里找到了一些可以更新一个字段的东西:http :
//www.karlrixon.co.uk/articles/sql/update-multiple-rows-with-different-
values-and-a-single-sql-
query/

UPDATE person
    SET name = CASE id
        WHEN 1 THEN 'Jim'
        WHEN 2 THEN 'Mike'
        WHEN 3 THEN 'Precious'
    END
WHERE id IN (1,2,3)

我的问题是如何更新多个字段?如:

UPDATE person
    SET name = CASE, sex = CASE id
        WHEN 1 THEN 'Jim', 'female'
        WHEN 2 THEN 'Mike', 'male'
        WHEN 3 THEN 'Precious', 'male'
    END
WHERE id IN (1,2,3)

这当然是行不通的。尝试了其他几种组合并失败了。任何的想法?谢谢!


问题答案:
UPDATE person
    SET name = CASE id
        WHEN 1 THEN 'Jim'
        WHEN 2 THEN 'Mike'
        WHEN 3 THEN 'Precious'
    END,
    sex = CASE id
        WHEN 1 THEN 'female'
        WHEN 2 THEN 'male'
        WHEN 3 THEN 'male'
    END
WHERE id IN (1,2,3)


 类似资料:
  • 我尝试通过实现以下函数,使用单个查询更新多行(约 350000): 尝试运行上述函数时,仅更新了 31 条记录。然后,我尝试使用以下函数逐行更新: 后者迄今已更新了所有记录,但速度很慢(估计将在9小时内结束)。有人知道更新多个记录的有效方法吗?

  • 我希望在一条语句中更新PostgreSQL中的多行。有没有一种方法可以做到以下几点?

  • 问题内容: 我看到这对笨论坛 考虑以下代码 这显然是您在Codeigniter中这样做的方式 实际上这是行不通的。我看了一下生成的SQL,结果甚至没有提到联接。 有谁知道如何使用Codeigniter的Active Record数据库类对联接进行更新? 问题答案: 我发现的一种解决方案是完全删除联接并将联接条件移到“ where”函数中,此外,您还需要更改更新字符串以包括新表。

  • 本文向大家介绍MongoDB中一次查询更新多个文档,包括了MongoDB中一次查询更新多个文档的使用技巧和注意事项,需要的朋友参考一下 要通过单个查询更新许多文档,请在MongoDB中使用 bulkWrite()。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是使用MongoDB中的一个查询来更新许多文档的查询- 在find()方法的帮助

  • 我需要更新我的数据库,它是基于locationId的多行软删除 当我运行查询时,我得到一个错误: 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项- 正如我所知,子查询将返回两条记录,因为子查询返回两条记录更新不会发生,但我如何解决这个问题。我试图解决这个问题,但没有成功。

  • 我需要根据一个子查询的结果更新一个表,该子查询带来了1个以上的值,但在下面的查询中,我得到错误返回“subquery returns mouth 1 row”。我想知道是否有可能做一个“循环”,以更新值与我下面的子查询中呈现的每个结果。 完成查询 返回2个或更多值的子查询。 结果 在理想的场景中,我的查询将执行第一个值,在第二个之后...第三个之后...而不重复前面的值。