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)
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)
SqlBuilder a une fonction LIKE
(et aussi startswith
et endswith
ceux qui construisent LIKE
appropriées clauses).
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%'))