gpt4 book ai didi

sql - 如果字符串中有单词,Postgresql 如何更新列?

转载 作者:行者123 更新时间:2023-11-29 14:10:00 25 4
gpt4 key购买 nike

我有 2 个表:

表 A 有一个邮政编码列,每行一个邮政编码(示例行:E1 8NF)

表 B 有一个邮政编码列,多个邮政编码用逗号分隔(示例行:E1 8NF、E1 8NG、E1 8NJ)

如果表 A 中的邮政编码存在于表 B 中,我想给它一个 1

如何在 postgresql 中执行此操作?到目前为止我的查询

UPDATE tablea
set pcd = 1 where tablea.postcode exists in tableb.postcode ??

最佳答案

您可以将逗号分隔列表转换为数组,然后在子选择中使用它:

update tablea a
set pcd = 1
where exists (select *
from tableb b
where a.postcode = any(string_to_array(b.postcodes, ','))
);

如果值以逗号之间的空格存储,则需要应用 trim(),这可能更容易在更新中加入:

update tablea a
set pcd = 1
from (
select trim(x.pc) as pc
from tableb b,
unnest(string_to_array(b.postcodes)) as x(px)
) t
where a.postcode = t.pc;

关于sql - 如果字符串中有单词,Postgresql 如何更新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42694689/

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