gpt4 book ai didi

sql - 删除 Django 查询中的重复项

转载 作者:行者123 更新时间:2023-11-28 19:35:32 25 4
gpt4 key购买 nike

有没有一种简单的方法可以删除以下基本查询中的重复项:

email_list = Emails.objects.order_by('email')

我尝试使用 duplicate() 但它不起作用。不重复执行此查询的确切语法是什么?

最佳答案

此查询不会为您提供重复项 - 即,它将为您提供数据库中的所有行,按电子邮件排序。

但是,我认为您的意思是您的数据库中有重复数据。在这里添加 distinct() 不会有帮助,因为即使你只有一个字段,你也有一个自动的 id 字段 - 所以 id+email 的组合不是独一无二。

假设你只需要一个字段,email_address,去重,你可以这样做:

email_list = Email.objects.values_list('email', flat=True).distinct()

但是,您应该真正解决根本问题,并从数据库中删除重复数据。

示例,通过电子邮件字段删除重复的电子邮件:

for email in Email.objects.values_list('email', flat=True).distinct():
Email.objects.filter(pk__in=Email.objects.filter(email=email).values_list('id', flat=True)[1:]).delete()

或书名:

for name in Book.objects.values_list('name', flat=True).distinct(): 
Book.objects.filter(pk__in=Artwork.objects.filter(name=name).values_list('id', flat=True)[3:]).delete()

关于sql - 删除 Django 查询中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5877306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com