python Sqlalchemy nella clausola




2 Answers

Supponendo che tu usi lo stile dichiarativo (cioè le classi ORM), è piuttosto semplice:

query = db_session.query(User.id, User.name).filter(User.id.in_([123,456]))
results = query.all()

db_session è la tua sessione di database qui, mentre User è la classe ORM con __tablename__ uguale a "users" .

python sqlalchemy

Sto cercando di fare questa query in sqlalchemy

SELECT id, name FROM user WHERE id in (123,456)

Vorrei legare la lista [123,456] al momento dell'esecuzione.




Con l'espressione API, che in base ai commenti è ciò che questa domanda richiede, è possibile utilizzare il metodo in_ della colonna pertinente.

Per interrogare

SELECT id, name FROM user WHERE id in (123,456)

uso

myList = [123, 456]
select = sqlalchemy.sql.select([user_table.c.id, user_table.c.name], user_table.c.id.in_(myList))
result = conn.execute(select)
for row in result:
    process(row)

Ciò presuppone che user_table e conn siano stati definiti appropriatamente.




Related