greenplum數據庫json刪除用SQL實現
时间: 2023-08-10 22:39:11 浏览: 85
你可以使用Greenplum数据库中的DELETE语句来删除JSON数据。下面是一个示例:
假设你有一个名为“mytable”的表,其中包含一个名为“data”的JSON字段。如果你想删除所有包含特定键值对的JSON对象,你可以使用以下语句:
```
DELETE FROM mytable WHERE data ->> 'key' = 'value';
```
其中,“key”是你要查找的键,“value”是你要匹配的值。这将删除所有包含该键值对的JSON对象。
如果你想删除整个JSON字段,你可以使用以下语句:
```
UPDATE mytable SET data = NULL;
```
这将从所有行中删除“data”字段。
相关问题
Greenplum数据库的json操作符沒有‘-’,請換一種方式
如果Greenplum数据库的JSON操作符没有“-”,你可以使用以下SQL语句来删除JSON中的键"c":
```
UPDATE mytable SET mycolumn = json_object_agg(key, value)::jsonb
FROM (SELECT key, value FROM jsonb_each(mycolumn) WHERE key <> 'c') items
WHERE mytable.id = 1;
```
假设你有一个名为“mytable”的表,其中包含一个名为“mycolumn”的JSON字段,你可以使用以上SQL语句来删除其中的键为"c"的数据。其中,mycolumn是你要更新的字段名。这个语句首先使用jsonb_each()函数将JSON对象转换为(key, value)对的形式,然后使用WHERE子句过滤掉键为"c"的数据,最后使用json_object_agg()函数将过滤后的数据重新组合成JSON对象。
在greenplum數據庫里有一條json數據:'{"a":'1',"b":"2","c":[]}',用SQL實現刪除key為"c"的數據,使json變為:'{"a":'1',"b":"2"}'
你可以使用Greenplum数据库中的JSON函数来删除JSON数据。下面是一个示例:
```
UPDATE mytable SET mycolumn = mycolumn - 'c' WHERE mycolumn @> '{"c":[]}';
```
假设你有一个名为“mytable”的表,其中包含一个名为“mycolumn”的JSON字段。你可以使用以上SQL语句来删除其中的键为"c"的数据。其中,"mycolumn"是你要更新的字段名。"mycolumn - 'c'"表示删除该字段中的键为"c"的值。"mycolumn @> '{"c":[]}'"表示只选择包含键"c"的空数组的行,以避免删除包含其他键"c"的行。
这将使JSON变为'{"a":'1',"b":"2"}',即已经删除了键为"c"的数据。
阅读全文