2

您好,我的 GAE 应用程序上有这个:

try:
    last = RegistroDescargas.gql("order by date DESC LIMIT 4")
except:
    last = None

有了它,我可以获得定义如下的数据库(“RegistroDescagas”)的最后四行:

class RegistroDescargas(db.Model):
    '''Model para guardar el registro de vídeos descargados en la web'''
    date = db.DateTimeProperty(auto_now_add=True)
    urlOrig = db.StringProperty(required=True)
    urlImg = db.StringProperty(required=True)
    vidTit = db.StringProperty(required=True)
    vidDesc = db.TextProperty()

但是,当然,如果一个或最后四个结果重复,只是显示我,我想要的是得到最后一个不重复的四行,我不知道我该怎么做......

有什么建议么?(我认为,如果最后这是可能的,可能会用一个完全不同的句子,但我不介意;))

非常感谢任何帮助..对不起我的英语..

4

2 回答 2

1

GQL 不支持 DISTINCT 查询。您可以做的就是将结果放入一个集合中,然后检查一个集合中有多少条目。如果少于四个,则查询其他记录。

这个答案更深入:Python: DISTINCT on GQuery result set (GQL, GAE)

否则,需要预先计算这种不同的列表。GAE 遵循昂贵写入的原则,以实现超快速读取。

于 2013-01-04T04:59:49.800 回答
0

DISTINCT 关键字是在1.7.4 版中引入的。.

您可以在此处找到更新的 GQL 参考(例如 Python)。

于 2013-01-05T07:42:13.560 回答