在python中使用sqlalchemy设置MySQL会话变量
我有一个MySQL查询,它给出了错误: “错误代码:1104。SELECT将检查多个MAX_JOIN_SIZE行;检查您的WHERE并使用SET SQL_BIG_SELECTS=1或SET MAX_JOIN_SIZE=#如果选择正确” 为了在MySQL Workbench中成功运行,我只需执行:在python中使用sqlalchemy设置MySQL会话变量,python,mysql,session,sqlalchemy,set,Python,Mysql,Session,Sqlalchemy,Set,我有一个MySQL查询,它给出了错误: “错误代码:1104。SELECT将检查多个MAX_JOIN_SIZE行;检查您的WHERE并使用SET SQL_BIG_SELECTS=1或SET MAX_JOIN_SIZE=#如果选择正确” 为了在MySQL Workbench中成功运行,我只需执行: SET SESSION SQL_BIG_SELECTS = 1; SELECT ... FROM ... WHERE ...; 这会同时运行这两条语句—SQL\u BIG\u SELECTS设置为1,
SET SESSION SQL_BIG_SELECTS = 1;
SELECT ...
FROM ...
WHERE ...;
这会同时运行这两条语句—SQL\u BIG\u SELECTS设置为1,这允许运行它下面的查询
现在我想用python访问这个查询的结果,并将其存储在一个数据帧中。我正在使用mysqlalchemy连接到数据库
我尝试同时运行SET和SELECT,这与我在MySQL Workbench中成功运行的方式相同:
from sqlalchemy import create_engine
def query001():
engine_fdb = create_engine('...connection string...')
sql_cmd = """
SET SESSION SQL_BIG_SELECTS = 1;
SELECT ...
FROM ...
WHERE ...;
"""
df = pd.read_sql(sql_cmd, engine_fdb)
最后一行生成了一个错误:“sqlalchemy.exc.ResourceClosedError:此结果对象不返回行。它已自动关闭。”我很难理解我找到的有关为什么会发生这种情况的信息,我觉得我有点不知所措
在python中,如何查询MySQL数据库,首先设置选项SET SESSION SQL\u BIG\u SELECTS=1,然后在该选项打开的情况下执行查询?请发布完整的代码。你想做什么让人困惑。我修改了这个问题,试图简化它。除了连接字符串和查询的细节外,没有其他代码可显示。具体的查询与这个问题无关,只是它超过了MySQL的最大连接大小。希望它更清晰。可能的话,请查看建议的解决方案。请发布完整的代码。你想做什么让人困惑。我修改了这个问题,试图简化它。除了连接字符串和查询的细节外,没有其他代码可显示。具体的查询与这个问题无关,只是它超过了MySQL的最大连接大小。希望它更清楚。可能的话,请看那里提出的解决方案