如何使用googleappengine GQL query(python)从下表中获取行?

2024-09-20 01:44:11 发布

您现在位置:Python中文网/ 问答频道 /正文

List_name   Email
==========  ==================
andrew      adam@gmail.com
adam        adam@gmail.com
smith       adam@gmail.com
john        adam@gmail.com
andrew      andrew@gmail.com
adam        andrew@gmail.com
smith       andrew@gmail.com
john        andrew@gmail.com
andrew      john@gmail.com
adam        john@gmail.com
smith       john@gmail.com
john        john@gmail.com
andrew      smith@gmail.com
adam        smith@gmail.com
smith       smith@gmail.com
john        smith@gmail.com

在上表中email_id是重复的,我想显示上表中的所有电子邮件,不重复。在

这里只有4封电子邮件,我只想从表中检索4行,这是不是可以使用goolge app engine中的GQL查询。在

还有一件事我想用分页显示电子邮件(一页10封电子邮件)

即,如果表中有15封电子邮件,则需要在第一页显示10封电子邮件,在第二页显示5封电子邮件。在

寻呼是非常重要的!在


Tags: namecomidapp电子邮件emailjohnengine
2条回答

如果您习惯于使用关系数据库,那么googleappengine可能看起来不太寻常。查询语法非常有限。与将所有内容放入一个简单的表和编写复杂的查询不同,您必须将所有内容放入复杂的数据结构中,然后编写简单的查询。在

您应该习惯于创建几个不同的实体,通常每个主键对应一个可能的查询。在这种情况下,您应该有一个UniqueEmailAddress或类似的实体。每次添加记录时,获取具有该名称的UniqueEmailAddress并对其进行更新,如果不存在,则创建它。然后你可以直接查询UniqueEmailAddress。在

您可以在python中使用set函数,您将能够删除所有重复项。我不认为有一种方法可以做到这一点GQL。在

>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> fruit = set(basket)               # create a set without duplicates
>>> fruit
set(['orange', 'pear', 'apple', 'banana'])

相关问题 更多 >