SqlAlchemy no-op BinaryExpression

时间:2016-04-15 22:22:02

标签: python sqlalchemy

我有这个问题:

customer_ids = [s for s in user_args if s.isdigit()]
emails = [s for s in user_args if not s.isdigit()]
all_customers = Customer.query.filter(
    Customer.email.in_(emails) | Customer.id.in_(customer_ids)
).all()

但是如果其中一个数组为空,我会遇到这个问题:SQLAlchemy and empty IN clause

我想写一些类似的东西:

def in_or_no_op(relation, list):
    return relation.in_(list) if list else BinaryExpressionNoOp()

然后执行in_or_no_op(Customer.email, emails) | in_or_no_op(Customer.id, customer_ids)

如果它是空的,那么想法是以某种方式跳过列表。我一直试图找到一种方法来写一个小时而没有运气。有什么建议吗?

0 个答案:

没有答案
相关问题