2009-06-16 61 views
0

有没有一种漂亮的方法在SQLObject中执行LIKE的SQL语句?在SQLObject中执行SQL LIKE

这一件作品,但它有点丑陋:

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

回答

0

SqlBuilder具有LIKE功能(也startswithendswith那些建立适当LIKE条款)。

1

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