gpt4 book ai didi

sql - 使用 array_replace() 更新数组中的多个值

转载 作者:行者123 更新时间:2023-11-29 13:30:57 24 4
gpt4 key购买 nike

我正在尝试更新 PostgreSQL 中的表。

事实上,我正在尝试更新一个数组。我有一个名为 switch_ids 的 OLD_ID、NEW_ID 表,并且我有一个表 TABLE_TO_UPDATE,其中有一列 my_array(一个 id 数组)。我想修改这个数组中的一些 id。我做了类似的事情:

UPDATE TABLE_TO_UPDATE
SET my_array=array_replace(my_array,OLD_ID,NEW_ID)
FROM switch_ids
WHERE switch_ids.old_id = ANY(my_array);

问题是,当同一行(在 my_array 中)有多个值要更改时,它只会更改一个值,而不是全部。我怎样才能同时更新它们?嵌套调用?

最佳答案

一定是有什么误会。 array_replace() (pg 9.3+) 替换该项目的 所有 出现,而​​不仅仅是第一次出现。考虑:

SELECT array_replace(ARRAY[5,1,2,5,4,5], 5, 3);

结果:

{3,1,2,3,4,3}

SQL Fiddle.

Per documentation:

replace each array element equal to the given value with a new value

关于sql - 使用 array_replace() 更新数组中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com