0

我正在尝试学习如何使用 Google App Engine,我正在查看他们的数据存储示例以进行查询我从未做过 SQL、GQL 等。那么有人可以分解这个字符串并解释每个部分在做什么吗?

# GqlQuery interface constructs a query using a GQL query string
q = db.GqlQuery("SELECT * FROM Person " +
                "WHERE last_name = :1 AND height <= :2 " +
                "ORDER BY height DESC",
                "Smith", max_height)
4

2 回答 2

2

查询结果赋值给“q”

db.GqlQuery 是 db 类中的 gqlquery 方法

“SELECT * FROM Person” + 表示从模型 Person 中选择所有内容

"WHERE last_name = :1 AND height <= :2" + last_name 是一个字段并且 :1 是第一个变量(与 height 和 :2 - 第二个变量相同)并加入请求

"ORDER BY height DESC",按字段高度降序排列

"Smith", max_height) 变量 1 和 2

q = db.GqlQuery("SELECT * FROM Person " +
     "WHERE last_name = :1 AND height <= :2 " +
     "ORDER BY height DESC",
     "Smith", max_height)
于 2013-05-22T18:53:27.367 回答
0

正如之前有人评论的那样,如果您不是来自 SQL 背景(即使那样我认为这是一个错误),您应该考虑使用 GQL。与模型和查询对象相比,使用 GQL 并没有真正的好处,许多人来到 appengine 表时,基于关于 appengine 应该如何工作的 SQL 的先入为主的想法,他们必须忘记这些想法。

要使用模型执行相同的查询,您将

q = Person.all().filter("last_name = ","Smith").filter("height <= ",max_height).order("-height")

正如另一个人所提到的,如果你刚刚开始,你应该认真考虑切换到ndb,除非你有一个你已经在使用的预先存在的代码,它是基于db

于 2013-05-23T01:08:46.407 回答