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

时间:2018-07-26 16:25:09

标签: python mysql pandas

我正在尝试通过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?

2 个答案:

答案 0 :(得分:0)

将参数作为字典传递到params参数中应该可以解决问题,文档puffing-billy

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

参数被传递到基础数据库驱动程序。

答案 1 :(得分:0)

经过几个小时的试验,我弄清楚了如何做到这一点。如果这不是最简洁的方法,请原谅我,但是我能提出的最好的方法-

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)