2016-09-06 25 views
0

我正在尝试使用or_理解列表。我已经发现了一篇文章,展示了如何仅检查一列,但我不确定如何使用列表同时检查两列。我想是这样的:SQLALCHEMY or_列表理解

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

这给了我一个坏的请求,虽然。任何关于如何使用列表同时搜索的建议将不胜感激!

回答

1

从我的理解,你需要解压条件进入or_()位置参数:

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

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

+1

条件可以是一个生成器:'or_(column.contains(word)for word in search for column in columns)' – RazerM