2009-06-16 9 views
0

Gibt es eine schöne Möglichkeit, eine SQL-Anweisung mit einem LIKE in SQLObject auszuführen?Ausführen von SQL LIKE in SQLObject

Dieser funktioniert, aber es ist etwas hässlich:

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

Antwort

0

SqlBuilder hat eine LIKE Funktion (und auch startswith und endswith diejenigen, die entsprechenden LIKE Klauseln bauen).

1

In sqlobject.sqlbuilder gibt es eine undokumentierte Klasse namens LIKE, die unter anderen Abfrageelementen verwendet werden kann.

Zum Beispiel:

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%'))