gpt4 book ai didi

python - 如何使用 Django 查询检查数据库字段的所有值是否相同

转载 作者:行者123 更新时间:2023-12-05 02:23:42 26 4
gpt4 key购买 nike

我有一个像下面这样的模型

Class Product(models.Model):
name = models.CharField(max_length=255)
price = models.IntegerField()

假设我们在数据库中有4条产品记录,有没有办法检查这4条产品记录是否都具有相同的价格

我不想遍历所有的产品,因为数据库中可能有几千条的产品记录,这样做会成为性能问题。

所以我正在寻找类似使用内置 django 数据库 ORM 的方法来执行此操作

check_whether_all_the_product_records_has_same_price_value = some django ORM operation......

if check_whether_all_the_product_records_has_same_price_value:
# If all the Product table records(four) has the same price value
# return the starting record
return check_whether_product_has_same_price_value(0)

那么谁能告诉我我们该怎么做呢?

最佳答案

可以建议你使用 filter 来计算行数

if Product.objects.all().count() == Product.objects.filter(price=price).count():
pass

或者使用distinct

if Product.objects.all().products.distinct('price').count() == 1:
pass

请注意,此示例仅适用于 Portgres。

你也可以使用annotate来计算我认为的计数

if Product.objects.all().values('price').annotate(Count('price')).count() == 1:
pass

关于python - 如何使用 Django 查询检查数据库字段的所有值是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679059/

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