python - 如何在 python 中动态绑定(bind) SQL 查询的多个参数?

标签 python sql pandas pymysql

所以,我有一个表(比如说 table_name ),它的列是:

|  A   |  B   |  C   |
------------------------
|  a1  |  b1  |  c1  |
|  a2  |  b2  |  c2  |
   ...

现在我必须使用以下查询读取列数据:

import pandas as pd
import pymysql as pycon

con = pycon.connect(host='localhost',user='root',password='', db='database')

#Error in here
df= pd.read_sql_query("SELECT A from table_name where B = %s and C != %s" %variableB %variableC, con)

但是我在 read_sql_query(...) 中遇到了一个错误,可能是查询格式错误,因为动态绑定(bind)的单个参数可以正常工作 即

df= pd.read_sql_query("SELECT A from table_name where B = %s" %variableB, con)

工作没有错误。谁能帮我查询一下?

最佳答案

如果有人遇到同样的问题,正确的查询代码是 '%s' 而不是 %s

df= pd.read_sql_query("SELECT A from table_name where B = '%s' and C != '%s'" % (variableB, variableC), con)

下面的代码给了我 pymysql.err.InternalError。

df= pd.read_sql_query("SELECT A from table_name where B = %s and C != %s" % (variableB, variableC), con)

谢谢 stackOverflow :)

关于python - 如何在 python 中动态绑定(bind) SQL 查询的多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530042/

相关文章:

python - 如何在 Pandas 数据框的每一行中的选定列中找到两个最低值?

python - windows chrome 通过命令行刷新选项卡 0(或当前选项卡)

mysql - 我可以在 SQL 查询中安全地使用两个 MAX 调用吗

python - 将 df.apply() 的输出一次写入多个列

python - 如何在Python数据框中按多索引(包括初始数字索引和其他列)进行分组?

python - Pandas 查找日期频率

python - 如何在鼠标悬停事件发生时更改饼图切片的颜色

python - matplotlib 3D 散点图点的颜色非常浅

mysql - 返回带有特定标签的行

php - MYSQL根据行从一列插入数据到另一列