Выполнение SQL LIKE в SQLObject - PullRequest
0 голосов
/ 16 июня 2009

Есть ли прекрасный способ выполнить инструкцию SQL с LIKE в SQLObject?

Это работает, но несколько уродливо:

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

Ответы [ 2 ]

1 голос
/ 17 ноября 2014

В 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%'))
0 голосов
/ 17 июня 2009

SqlBuilder имеет функцию LIKE (а также функции startswith и endswith, которые создают соответствующие пункты LIKE).

...