我对sql非常陌生,而且比谷歌应用引擎中使用的GQL更多。我已设法将数据推送到Google服务器,但我无法找到从我加载到数据库的实体进行查询的方法。
这是问题所在,我想只查询用户ID标记的用户名称和号码,而不是下面给出的其他列,
Name Number User_id Country
Rob 0065114146 654351 singapore
Mark 0065132411 654351 singapore
Tina 0065221916 846611 singapore
Nick 0065214126 846611 singapore
这是我的Models.py文件,其中我有MyContacts Entity定义,
Class MyContacts(db.Model):
Name = db.StringProperty(required=True)
Number = db.PhoneNumberProperty(required=True)
User_id = db.IntegerProperty(required=True)
Country = db.StringProperty()
我将用户ID作为UI的输入,但我无法找到使用查询调出数据的方法。如果任何人可以帮我在GQL中输入查询,那对我来说将是一个很大的帮助。
我尝试了SELECT * FROM MyContacts WHERE __key__ = KEY('user_id',654351)
之类的各种各样但我一无所获。
请帮帮我。
答案 0 :(得分:1)
由于User_id是IntegerProperty,您需要像这样查询:
db.GqlQuery("SELECT * FROM MyContacts WHERE User_id = :1", some_int)
或与查询等效:
MyContacts.all().filter('User_id =', some_int)
请注意,如果'User_id'取自Users API User对象,则不应将其转换为int - 它不能保证适合64位,因此您应该将其存储为字符串或作为UserProperty。