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