GAE通过使用GQL,如何使用SQL之类的查询?

时间:2010-11-29 06:41:54

标签: google-cloud-datastore gql gqlquery

def post(self):

    selector = self.request.get('search')
    search = db.GqlQuery("SELECT * FROM Product WHERE productName = :selector", selector=selector)
    products = search.fetch(10)
    values = {
        'products' : products
        }
    doRender(self, 'search.html', values)

以上代码适用于我的产品类别中的搜索功能... 实际上我试图使用代码“Select * From Product Where productName like%:selector%” 对于我的搜索功能,但我无法使用此代码.... 还有其他GQL代码替换'SQL-LIKE查询'??

1 个答案:

答案 0 :(得分:1)

App Engine中没有SQL的LIKE。但是,您可以执行类似

的操作
blurred_product_name = selector[:-2]
search = db.GqlQuery('SELECT * FROM Product where productName > ',
                                          blurred_product_name)

因此,如果您的产品名称为Product-1,Product-2,Product-3且搜索词为“Product”,则blirred_product_name将为“Produc”,在这种情况下将返回所有三种可能性。 但是请注意索引。

或者你可以很好地使用SearchableModel http://www.billkatz.com/2008/8/A-SearchableModel-for-App-Engine并轻松完成。