首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据json值删除重复行

根据json值删除重复行
EN

Stack Overflow用户
提问于 2018-02-05 23:48:48
回答 1查看 989关注 0票数 0

我有一个包含两列的表:idcontent

content是一个json字段。

我需要删除json中某个属性上的重复项。

下面是我拥有的json的一个例子:

代码语言:javascript
复制
{
    "num_aire_ospf": "",
    "name": "name1",
    "rpv": "119"    
}

下面是我需要删除的重复项的示例:

代码语言:javascript
复制
ID    | Content  
--------------------------------------------------------------------------
 1    | {"num_aire_ospf": "", "name": "name1", "rpv": "119" }
 2    | {"num_aire_ospf": "", "name": "name1", "rpv": "119" }
 3    | {"num_aire_ospf": "", "name": "name1", "rpv": "119" }
 4    | {"num_aire_ospf": "", "name": "name1", "rpv": "120" }
 5    | {"num_aire_ospf": "", "name": "name8", "rpv": "150" }
 6    | {"num_aire_ospf": "", "name": "name8", "rpv": "150" }
 7    | {"num_aire_ospf": "", "name": "name8", "rpv": "151" }

我想删除具有相同名称的第一行。

在本例中,我想执行一个查询,删除第1、2、3、5、6行,只保留这些行:

代码语言:javascript
复制
ID    | Content  
--------------------------------------------------------------------------    
 4    | {"num_aire_ospf": "", "name": "name1", "rpv": "120" }    
 7    | {"num_aire_ospf": "", "name": "name8", "rpv": "151" }

因此,只保留名称相同的最后一行。

因此,对于'name1‘,我需要删除名称为'name1’的前3行。对于'name8‘,我需要删除名称为' name '8的前2行。

它必须是动态的,因为我有很多同名的行,我想保留最后一行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-05 23:53:55

在关系数据库的表中没有“最后一行”(或“第一行”)这样的东西。从你的例子中,我猜“最后一行”,你指的是具有最高id的那个,然后你可以使用这个:

代码语言:javascript
复制
delete from data
where id not in (select max(id)
                 from data 
                 group by content ->> 'name')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48626316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档