pypika icon indicating copy to clipboard operation
pypika copied to clipboard

Dynamic creation pypika.Criterion

Open antek16x opened this issue 1 year ago • 0 comments

I have dataclass for query filters like this

class Filters:
   table: str
   column: str
   value: List[str]
   operation: Operator

when i want load data from diffrent tables from DB i have filters: List[Filters] where filters on different tables can be given. So i want do something like this

from pypika import Query, Table, Criterion

def build_query(table: str, columns: List[str], filters: List[Query]):
   criterion = Criterion.any([])
   for filter in filters:
      if filter.table == table:
          criterion.add(Table(table).field(filter.column) operator filter.values)
   return Query._from(table).select(','.join(columns).where(criterion).get_sql(quote_char=None)

Any ideas?

antek16x avatar Jul 25 '22 13:07 antek16x