0

デフポスト(自己):

    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%」を使用しようとしましたが、このコードを使用できませんでした.... 「SQL-LIKEクエリ」の代わりになるGQLコードは他にありますか??

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」となり、この場合は 3 つの可能性がすべて返されます。ただし、インデックスには注意してください。

別の方法として、SearchableModel http://www.billkatz.com/2008/8/A-SearchableModel-for-App-Engineをうまく使用 して、これを簡単に行うことができます。

于 2010-12-15T07:43:30.530 に答える