替换PostgreSQL jsonb数组对象中的撇号(')

问题描述 投票:1回答:1

请找到下面的jsonb对象,我需要在其中替换指令键中的所有撇号。

    [{
        "instruction": "Don't need to book car for M'lore location",
        "reservationNo": "TT00098272"
    },
    {
        "instruction": "Please book a car for mumbai location",
        "reservationNo": "TT00098273"
    }
 ]

[预期结果:将值替换为撇号

[{
            "instruction": "Dont need to book car for Mlore location",
            "reservationNo": "TT00098272"
        },
        {
            "instruction": "Please book a car for mumbai location",
            "reservationNo": "TT00098273"
        }
     ]
postgresql jsonb postgresql-9.5 postgresql-10
1个回答
0
投票

您可以在转换为regexp_replace()后执行text

postgres=# select regexp_replace('[{
        "instruction": "Don''t need to book car for M''lore location",
        "reservationNo": "TT00098272"
    },
    {
        "instruction": "Please book a car for mumbai location",
        "reservationNo": "TT00098273"
    }
 ]'::jsonb::text,'''','','g')::jsonb
;
                                                                                    regexp_replace                                                                                     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 [{"instruction": "Dont need to book car for Mlore location", "reservationNo": "TT00098272"}, {"instruction": "Please book a car for mumbai location", "reservationNo": "TT00098273"}]
(1 row)
© www.soinside.com 2019 - 2024. All rights reserved.