在使用pypika与操作符一起生成查询时,我对使用多个条件感到有点困惑。
from pypika import Field, Query
query = Query.from_('test').select('column1','column2')
query = query.where(operator.eq(Field('column1'), 12))使用上面的代码,我可以使用operator.eq为equal添加条件,我们还可以进行如下操作。
operator.lt(a, b)
operator.le(a, b)
operator.eq(a, b)
operator.ne(a, b)
operator.ge(a, b)
operator.gt(a, b)
operator.not在我的例子中,我得到了动态的操作值,比如
Equal
NotEqual
LessThan
LessThanOrEqual
GreaterThan
GreaterThanOrEqual如何在不添加大量if条件的情况下形成查询?相反,我试图找到operator.eq,operator.le(a, b)和只有Equal,LessThanOrEqual的函数,并将它们用于where条件?
query = query.where(operator.eq(Field('column1'), 12))发布于 2020-04-13 19:16:33
使用python,如下所示:
import operator
operations = {
'Equal': operator.eq,
'NotEqual': operator.ne,
'LessThan': operator.lt,
'LessThanOrEqual': operator.le,
'GreaterThan': operator.gt,
'GreaterThanOrEqual': operator.ge,
}像这样使用它
query = query.where(operations[key](Field('column1'), 12))其中key = 'LessThan' # Or NotEqual, Equal
https://stackoverflow.com/questions/61194784
复制相似问题