【问题标题】:GAE by using GQL, how to use SQL's like query?GAE使用GQL,如何使用SQL的like查询?
【发布时间】:2010-11-29 06:41:53
【问题描述】:

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

【问题讨论】:

    标签: google-cloud-datastore gql gqlquery


    【解决方案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 并轻松完成此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-26
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 2011-03-19
      相关资源
      最近更新 更多