Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL:从jsonb[]中删除对象_Sql_Json_Postgresql_Postgresql 10 - Fatal编程技术网

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[]
可能是(实际上是)许多不必要问题的原因。阅读