SQLALCHEMY或_ list comprehension

时间:2016-09-06 15:01:26

标签: python sqlalchemy flask-sqlalchemy

我正在尝试使用or_的列表理解。我已经找到了一篇文章,展示了如何只检查一列,但我不确定如何使用列表同时检查两列。我试过这样的事情:

q = q.filter(or_((model.column.contains(word), model.column2.contains(word))for word in search))

这给了我一个糟糕的要求。关于如何使用列表同时搜索的任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:1)

根据我的理解,您需要将解包条件转换为or_()的位置参数:

columns = [model.column, model.column2]
conditions = [column.contains(word) for word in search for column in columns]
q = q.filter(or_(*conditions))

假设您想要“或”包含每个单词和所有给定列。