2014-01-13 92 views
3

假設表中只需要兩列(名稱和ID)。我想下面的代碼的東西:動態查詢sqlalchemy中的列子集

session.query(User.id, User.name).all() 

但是,如果列名是動態的,

def get_data(table, columns): 
    return session.query(*(getattr(table, column) for column in columns)).all() 

但上面的一個長相醜陋。有更好的推薦方法嗎?

回答

2

你可以使用select()

columns = ['id', 'name'] 
print session.query(select(from_obj=User, columns=columns)).all() 

希望有所幫助。

+0

謝謝。有用。這相當於'query(User.id,User.name)'還是有區別? – balki