0

def post(自我):

    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 查询”?

4

1 回答 1

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 将为“Product”,在这种情况下将返回所有三种可能性。但是要小心索引。

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

于 2010-12-15T07:43:30.530 回答