带有多个语句的Python mysql连接器

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (109)

我正在尝试通过mysql.connector运行SQL查询,该查询需要SET命令才能查询特定的表:

import mysql.connector
import pandas as pd   

cnx = mysql.connector.connect(host=ip,
                              port=port,
                              user=user,
                              passwd=pwd,
                              database="")
sql="""SET variable='Test'; 
       SELECT * FROM table  """

df = pd.read_sql(sql, cnx)

当我运行这个时,我得到错误“执行多个语句时使用multi = True”。但是我在哪里放置multi = True?

提问于
用户回答回答于

将参数作为字典传递到params参数应该做的诀窍,文档在这里

pd.read_sql(sql, cnx, params={'multi': True}) 

参数将传递给基础数据库驱动程序。

用户回答回答于

经过几个小时的实验,我想出了如何做到这一点。原谅我,如果这不是最简洁的方式,但最好的我可以想出 -

import mysql.connector
import pandas as pd   

cnx = mysql.connector.connect(host=ip,
                              port=port,
                              user=user,
                              passwd=pwd,
                              database="")
sql1="SET variable='Test';" 

sql2="""SELECT * FROM table  """

cursor=cnx.cursor()
cursor.execute(sql1)
cursor.close()

df = pd.read_sql(sql2, cnx)

扫码关注云+社区

领取腾讯云代金券