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 - 2 番目の変数と同じ) AND はリクエストを結合します

「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 がどのように動作するべきかという SQL に基づく先入観を持って appengine のテーブルに来ており、それを忘れなければなりません。

モデルを使用して同じクエリを実行するには

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

そして、他の人が言ったように、始めたばかりの場合はndb、に基づいて既に作業している既存のコードの本体がない限り、に切り替えることを真剣に検討する必要がありますdb

于 2013-05-23T01:08:46.407 に答える