SQLAlchemy查询功能

时间:2012-10-14 19:00:34

标签: python python-2.7 sqlalchemy

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

我的查询与此类似:

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] .. 等等。

这样做的方法是什么?

谢谢。

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')