Sig*_*ils 3 python mysql sqlalchemy flask flask-sqlalchemy
我正在使用 Flask-SQLAlchemy,但在 SQL 语法中的 IN 子句中遇到了一些问题。我希望我的 IN 子句“读取”的数据是一个包含一些数据的列表,例如
args = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这是我的代码的样子。
connection = db.session.connection()
raw_sql = text("""
SELECT
*
FROM
table
WHERE data IN :list
""")
query = connection.engine.execute(raw_sql, {'list' : args})
Run Code Online (Sandbox Code Playgroud)
我试过给 args 参数插入元组和列表,但没有任何效果。我要么得到:
args = tuple([1, 2, 3])args = [1, 2, 3]
您如何使用 SQLAlchemy 从列表中读取并使用 RAW SQL 和参数作为输入?
小智 5
On python 3.7:
import sqlalchemy
args = [1, 2, 3]
raw_sql = "SELECT * FROM table WHERE data IN :values"
query = sqlalchemy.text(raw_sql).bindparams(values=tuple(args))
conn.engine.execute(query)
Run Code Online (Sandbox Code Playgroud)