GAE с помощью GQL, как использовать SQL как запрос?
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)
Приведенный выше код предназначен для функции поиска из моей категории продуктов... На самом деле я пытался использовать код "Выбрать * Из продукта, где productName like %:selector%" для своей функции поиска, но я не смог использовать этот код.... Есть ли другой GQL-код, который заменяет "SQL-LIKE запрос"??
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 и сделать это легко.