擅长:python、mysql、java
<p>可以为<code>IN</code>子句使用<a href="https://docs.sqlalchemy.org/en/13/core/tutorial.html#using-textual-sql" rel="nofollow noreferrer">^{<cd1>}</a>构造(注意sql注入风险):</p>
<pre><code>from sqlalchemy_app import Base, Session, engine
import sqlalchemy as sa
from sqlalchemy.sql import text
class Something(Base):
id = sa.Column(sa.Integer, primary_key=True)
class SomethingElse(Base):
id = sa.Column(sa.Integer, primary_key=True)
something_id = sa.Column(sa.Integer, sa.ForeignKey("something.id"))
if __name__ == "__main__":
Base.metadata.drop_all(engine)
Base.metadata.create_all(engine)
s = Session()
in_clause = text("something.id IN (1, 2, 3)")
s.query(Something).join(SomethingElse).filter(in_clause).all()
</code></pre>
<p>发出此查询:</p>
<pre><code>2019-08-10 14:23:32,329 INFO sqlalchemy.engine.base.Engine SELECT something.id AS something_id
FROM something INNER JOIN somethingelse ON something.id = somethingelse.something_id
WHERE something.id IN (1, 2, 3)
</code></pre>