0

我有一个函数,它接受一个参数,运行一个查询,最后在某些计算后返回一些值。

我的查询与此类似:

def my_function(passed_argument):
    query = Session.query(t).filter(t.column_c == passed_argument).all()
    # ... do some work with query
    return some_value

然而,我想要实现的是:向函数传递一个包含多个值的列表(而不是单个参数),并让 t.column_c 匹配其中的任何一个。

前任。Select * from t where column_c = my_list[0] or column_c = my_list[1] or column_c = my_list[2] ..等等。

这样做的方法是什么?

谢谢你。

4

2 回答 2

2

我会推荐这样的东西:

def my_function(*passed_arguments):
    query = Session.query(t).filter(t.column_c.in_(passed_arguments)).all()
    # ... do some work with query
    return some_value

您可以像这样调用该方法:

my_function(123, 456, 789)
于 2012-10-14T19:08:47.150 回答
1

您可以使用 SQL 关键字将该过滤放入查询中IN

SELECT col1 FROM table WHERE col1 IN (2,3,5,7)
SELECT col2 FROM table WHERE col2 IN ('text1','text2')
于 2012-10-14T19:09:35.380 回答