sqlalchemy 使用 in_ 进行过滤

0 投票
1 回答
5609 浏览
提问于 2025-04-16 00:58

有没有更有效的方法来做以下事情?我更想知道如果“day”等于'all',有没有办法让“mylist”匹配任何东西,因为在其他情况下,“mylist”可能包含更多的元素。

if day == 'all':
    mylist = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday']
else:
    mylist = [day] # day equal to one of the above

records = meta.Session.query(Transaction).filter(Transaction.day.in_(mylist)).all()

1 个回答

7

如果日期等于 'all',那就干脆不进行过滤怎么样?

query = meta.session.query(Transaction)
if day != 'all':
    query = query.filter(Transaction.day == day)
records = query.all()

撰写回答