我想用一个IN
运算符构造一个SQL语句,该运算符可以处理任意长度的列表。我正在与python,pandas和sqlalchemy合作。使用python中的sqlalchemy和pandas构建一个可变长度的SQL查询
例如,如果我想执行的查询是
SELECT * FROM users WHERE age IN (25, 26, 27)"
我曾尝试:
import pandas as pd
from sqlalchemy.sql import text
ages = (25, 26, 27)
query = text("SELECT * FROM users WHERE age IN (:x)")
df = pd.read_sql_query(query, conn, params={"x":ages})
但是这会导致错误。我如何正确构建查询?如果IN
运营商的列表中只有一个值,即ages = tuple(25)
,我希望解决方案能够运行。
您可能想试试[this](http://stackoverflow.com/a/26184603/5741205)。 PS它不适合我的SQLite和目前我无法检查它对其他SQL DB ... – MaxU