0
SQLObjectにLIKE
のSQL文を実行する方法はありますか?SQLObjectでSQL LIKEを実行する
この1つは動作しますが、それはやや醜いです:
fields = Foo.select("field LIKE '%%%s%%'" % bar)
SQLObjectにLIKE
のSQL文を実行する方法はありますか?SQLObjectでSQL LIKEを実行する
この1つは動作しますが、それはやや醜いです:
fields = Foo.select("field LIKE '%%%s%%'" % bar)
SqlBuilderは(また、適切なLIKE
句を構築startswith
とendswith
もの)LIKE
機能を持っています。
sqlobject.sqlbuilder
には、LIKE
と呼ばれる文書化されていないクラスがあり、他のクエリ要素の中で使用できます。例えば
:
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%'))