Django ORM:如何根据所有记录中的列获取唯一记录(需要模型对象而不是特定值对象)
Django ORM: How to get unique records based on a column from all records(Need model object not particular value object)
对后端数据库使用 mysql。查询数据库中的所有记录,如:
ob = Shop.objects.all()
此处查询所有记录,因为需要所有n列值。那就来答题吧。
想根据某一列获取所有不重复的记录。尝试使用 Python SET 函数。但它会删除完全相同的记录。我有在特定列值中具有相同值但在其他列中具有不同值的记录。
有人可以分享一些在 Django ORM 的帮助下完成此操作的想法吗!!!
如果我没有正确理解你的问题,你只想检索没有重复的记录。您可以使用此查询执行此操作:
SELECT * from shops GROUP by (duplicate_field_name) having COUNT(*) = 1
如何用 django 做到这一点? GROUP by 是 Django 最糟糕的地方。然而,这可以通过原始查询来实现。
ob = Shop.objects.raw('SELECT * from shops GROUP BY
(duplicate_field_name) having COUNT(*) = 1 ORDER BY some_field')
记得将 shops
和 duplicate_field_name
分别替换为 table 的实际名称和列名。
对后端数据库使用 mysql。查询数据库中的所有记录,如:
ob = Shop.objects.all()
此处查询所有记录,因为需要所有n列值。那就来答题吧。
想根据某一列获取所有不重复的记录。尝试使用 Python SET 函数。但它会删除完全相同的记录。我有在特定列值中具有相同值但在其他列中具有不同值的记录。
有人可以分享一些在 Django ORM 的帮助下完成此操作的想法吗!!!
如果我没有正确理解你的问题,你只想检索没有重复的记录。您可以使用此查询执行此操作:
SELECT * from shops GROUP by (duplicate_field_name) having COUNT(*) = 1
如何用 django 做到这一点? GROUP by 是 Django 最糟糕的地方。然而,这可以通过原始查询来实现。
ob = Shop.objects.raw('SELECT * from shops GROUP BY
(duplicate_field_name) having COUNT(*) = 1 ORDER BY some_field')
记得将 shops
和 duplicate_field_name
分别替换为 table 的实际名称和列名。