PostgreSQL:从jsonb[]中删除对象
我有一个名为PostgreSQL:从jsonb[]中删除对象,sql,json,postgresql,postgresql-10,Sql,Json,Postgresql,Postgresql 10,我有一个名为test\u data的列,其中的数据如下所示: {"{\"123\":\"foo\"}","{\"123\":\"foo\"}","{\"123\":\"bar\"}","{\"567\":\"bar\"}"} 我将如何仅删除“{\“1234\”:“foo\”}”中的一个 此外,我还想了解如何删除“{\'123\”:“bar\”}或“{\'567\”:“bar\”} 我试过了 UPDATE my_table SET test_data = test_data - '{"123":
test\u data
的列,其中的数据如下所示:
{"{\"123\":\"foo\"}","{\"123\":\"foo\"}","{\"123\":\"bar\"}","{\"567\":\"bar\"}"}
我将如何仅删除“{\“1234\”:“foo\”}”
中的一个
此外,我还想了解如何删除“{\'123\”:“bar\”}
或“{\'567\”:“bar\”}
我试过了
UPDATE my_table SET test_data = test_data - '{"123":"foo"}' WHERE id= '1';
但是,我得到了错误error:operator不存在:jsonb[]-未知
。我做错了什么?还有更好的方法吗?操作符只对jsonb
有效,而不与json
无关,但是:您不需要在SQL中“转义”双引号<代码>'{\'123\':\'foo\'}'应该是'{“123”:“foo”}'
测试数据的数据类型到底是什么?这真的是json[]
?这几乎毫无意义。如果要存储JSON文档的数组,请使用本机JSON数组并将其存储在JSON
列中。@a_horse_,我看到没有名称,我应该使用什么来代替?我逃离了它们,因为它们是这样储存的。是的,数据类型确实是json[]
json[]
可能是(实际上是)许多不必要问题的原因。阅读