2009-06-16 10 views
0

Existe-t-il une jolie façon d'exécuter une instruction SQL avec un LIKE dans SQLObject?Exécution de SQL LIKE dans SQLObject

Celui-ci fonctionne, mais il est un peu laid:

fields = Foo.select("field LIKE '%%%s%%'" % bar) 

Répondre

0

SqlBuilder a une fonction LIKE (et aussi startswith et endswith ceux qui construisent LIKE appropriées clauses).

1

En sqlobject.sqlbuilder il existe une classe non documentée appelée LIKE qui peut être utilisée parmi d'autres éléments de requête.

Par exemple:

from sqlobject.sqlbuilder import LIKE 

class Customer(SQLObject): 
    name = StringCol() 
    ... 

# this search is case-dependent 
rows = Customer.select(LIKE(Customer.q.name, "%Smith%")) 

class ILIKE(LIKE): 
    op = 'ILIKE' 

# this search is case-independent, works on PostgreSQL, not sure about others 
rows = Customer.select(ILIKE(Customer.q.name, '%smith%'))