我有一个函数,它接受一个参数,运行一个查询,最后在某些计算后返回一些值。
我的查询与此类似:
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] ..
等等。
这样做的方法是什么?
谢谢。
答案 0 :(得分: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)
答案 1 :(得分:1)
您可以使用SQL关键字IN
:
SELECT col1 FROM table WHERE col1 IN (2,3,5,7)
SELECT col2 FROM table WHERE col2 IN ('text1','text2')