gpt4 book ai didi

database - 从 subselect 语句结果数组更新 select 语句

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

我有一个查询,我已经研究了一段时间,我可以理解为什么它出错了,但是我似乎无法弄清楚如何让一切正常运行。

我的设置如下所示。

我有一个包含站点列表的数据库表

table name: websites

column name within websites:
domain_name
------------------
site1234.mydomain.com
site1235.mydomain.com
site1256.mydomain.com
site1257.mydomain.com
site1258.mydomain.com

我要做的是更改子域部分之后的所有内容,即:.mydomain.com -> .mynewdomain.com

我有查询以获得第一个子域就好了。

SELECT split_part(domain_name, '.', 1) AS site_name FROM websites;

所以我知道这需要在子选择中,但我不确定我错过了什么。我的选择/子选择查询如下所示。

UPDATE websites SET domain_name = site_name || '.mynewdomain.com' FROM (SELECT split_part(domain_name, '.', 1) FROM websites) AS site_name WHERE domain_name LIKE '%.mydomain.com';

我明白为什么它是错误的,因为我的第一个查询返回多行,所以它看到数据不匹配,我知道我需要一些如何循环遍历子选择中的每个结果并在初始选择中使用该值,但我不知道实现此功能需要什么语法。

非常感谢任何帮助!

干杯,

-H

最佳答案

UPDATE websites
SET domain_name = t.site_name || '.mynewdomain.com' FROM
(
SELECT split_part(domain_name, '.', 1) AS site_name
FROM websites
) t
WHERE domain_name LIKE '%.mydomain.com';

关于database - 从 subselect 语句结果数组更新 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678376/

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