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 に答える