Skip to main content
 首页 » 编程设计

python之使用多个 AND 语句的 Pandas read_sql_query

2025年05月04日16lautakyan007

我正在尝试在 python pandas 中组合一个 SQL 查询。我尝试了不同的方法,但总是出现以下错误: 提供的绑定(bind)数量不正确。当前语句使用 6 个,提供了 3 个。

我的代码如下。我做错了什么?

conn = sqlite3.connect(my_db) 
df = pd.read_sql_query( 
    con = conn, 
    sql = """SELECT * FROM {table} 
        WHERE @var1 = (?) 
        AND @var2 = (?) 
        AND @var3 = (?) 
        ;""".format(table=table), 
    params= (value1, value2, value3), 
    ) 

请您参考如下方法:

正如您所说,@var1、@var2 和@var3 都是列名。

但是,SQL 将 @ 符号解释为您稍后将在代码中提供的值的参数。

因此,由于三个 (?) 和三个 @var,您的 SQL 代码需要 6 个值。但是您只提供了 3 个值(对于 (?)),这意味着上述错误正在发生。

我建议您在命名您的列时不要使用 '@' 以减少出错的机会。

参见 this question进一步说明。