gpt4 book ai didi

python - 使用 django 在 mysql 数据库上使用 DISTINCT

转载 作者:行者123 更新时间:2023-11-29 04:21:56 26 4
gpt4 key购买 nike

我一直在尝试(但失败了)生成一个忽略模型结果的查询,而无需创建第二个数据库。

pmrs.models.LootTable

class LootTable(models.Model):
boss = models.CharField(max_length=255)
itemid = models.IntegerField()
itemname = models.CharField(max_length=255)
wfflag = models.BooleanField(help_text="Set true if warforged")

这是模型布局。我想要得到的是 boss 字段中所有内容的列表,但随后省略了重复项。

我尝试了各种不同的方法,.value_list、.values、order_by.().distinct 等,但似乎没有任何效果。

使用以下内容

bosses = LootTable.objects.values('boss').distinct()

返回

[{'boss': u'Thok the Bloodthirsty'}, {'boss': u'Ordos'}, {'boss': u'Paragons of the Klaxxi'}, {'boss': u'Ordos'}, {'boss': u'Spoils of Pandaria'}, {'boss': u'Spoils of Pandaria'}, {'boss': u'Galakras'}, {'boss': u'General Nazgrim'}, {'boss': u'Ordos'}, {'boss': u'Spoils of Pandaria'}, {'boss': u'Siegecrafter Blackfuse'}, '...(remaining elements truncated)...']

正如您从结果中看到的那样,它返回了重复项。

最佳答案

您真的应该花时间将模型类的相关内容放入问题中。像你一样压缩它似乎可以节省一点时间,但实际上它会让你更难准确地计算出你想要做什么。

根据你所输入的内容,

q = LootTable.objects.values('boss').distinct()

应该可以正常工作。如果没有,则说明某处有其他问题。

顺便说一句,boss 不应该只有一个战利品表吗?为什么你仍然需要做 distinct?事实上,看看这个模型,如果我明白你想做什么(并且不能保证我会这样做!)我可以发现很多可能会让你失望的问题,即:

a) 为什么你有一个 LootTable 表?使用 BossItem 之间的多对多外键可以实现相同的功能。

b) 为什么 LootTable 上同时有 item_id 和 item_name?为什么不直接让 item 成为 Item 模型的外键呢? (即正确规范化的数据)

c) 如果它只指向一个Item,它怎么是一张表? :)

关于python - 使用 django 在 mysql 数据库上使用 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21410175/

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