>'{-6ren">
gpt4 book ai didi

sql - 在 postgresql 中使用变量作为键访问 json 对象

转载 作者:行者123 更新时间:2023-11-29 13:15:21 26 4
gpt4 key购买 nike

我有一个 json poll_result

{"total_votes":1,"yes":1,"no":0}

我有一个有键的变量

vote_to = _poll_response::json#>>'{vote}';

然后返回 "yes" .

现在我想访问 poll_result json 基于 vote_to 变量的值,所以我正在尝试

raise notice '%',poll_result::json#>>'{||vote_to||}';

但这是打印 <NULL> .连我都试过了

raise notice '%,%',poll_result,poll_result::json#>>'{''||vote_to||''}';

但结果是一样的<NULL> .

请帮忙!!!

最佳答案

请参阅有关如何将变量与 ->> 一起使用的示例和 #>>运营商:

do $$
declare
pool_result json = '{"total_votes":1,"yes":1,"no":0}';
vote_to text = 'yes';
begin
raise notice 'yes: %', pool_result ->> vote_to;
-- or
raise notice 'yes: %', pool_result #>> array[vote_to];
end;
$$

NOTICE: yes: 1
NOTICE: yes: 1

如果变量的值在双引号中,你应该修剪它们:

do $$
declare
pool_result json = '{"total_votes":1,"yes":1,"no":0}';
vote_to text = '"yes"';
begin
raise notice 'yes: %', pool_result ->> trim(vote_to, '"');
-- or
raise notice 'yes: %', pool_result #>> array[trim(vote_to, '"')];
end;
$$

关于sql - 在 postgresql 中使用变量作为键访问 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49957977/

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