在数据库中查找特定字段的重复条目

时间:2014-05-28 10:21:44

标签: django

我的模型包含名称,学校,电子邮件,地址等字段。

我想找出nameschool字段有相同条目的行?

eg:
name school email 
abc     mps    abc@gmail.com
abc     mps    abc@gmail.com
xyz     vps    xyz@gmail.com
abc     mps    abc@gmail.com
poi     vps    poi@gmail.com
jkl     vps    jkl@gmail.com

类似于name abc和school mps是3个条目,对于xyz和vps,有2个条目 我可以嵌套for循环和迭代方式来检查表中所有行的名称和学校字段。这将是性能损失(n * n)

还有其他方法可以找到答案吗?

2 个答案:

答案 0 :(得分:0)

distinct()将达到目的。 以下将解决您的问题

model_name.objects.values_list('name').distinct()

如果你想要字典,那么你必须这样做

model_name.objects.values('name').distinct()

希望能解决你的问题!!

答案 1 :(得分:0)

我不确定我是否理解你,你只想得到 SAME 名称和学校的结果,或者只想得到 ONE 姓名和学校的结果?

这句话将返回名为' abc'的所有学校。和学校' mps'

result_list = model.objects.filter(name='abc').filter(school='mps')


如果您尝试仅为每个姓名和学校获得一个结果,则必须使用distinct() 像:

result_list = model.objects.filter(name='abc').filter(school='mps').distinct()`