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)
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)
SqlBuilder hat eine LIKE
Funktion (und auch startswith
und endswith
diejenigen, die entsprechenden LIKE
Klauseln bauen).
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%'))