gpt4 book ai didi

python - 如何使用 pymysql 从多个 select 语句中获取结果

转载 作者:行者123 更新时间:2023-11-29 01:51:20 26 4
gpt4 key购买 nike

基本上,我有以下示例(假设 cur 来自有效连接):

>>> con =  pymysql.connect(<parameters go here>)
>>> cur = con.cursor()
>>> sql = "SELECT @a := 0; SELECT @a := @a+2; SELECT @a;"
>>> res = cur.execute(sql)
>>> res
1

如您所见,res 返回整数 1,这意味着 sql 运行良好。但是,最后一个选择应该返回数字 2,而我需要那个数字。

如果我运行这段代码(由@falsetru 建议),我也没有得到我需要的东西:

>>> cur.execute(sql)
1
>>> cur.fetchall()
[{u'@a := 0': 0}]

我怎样才能找回它?不分离SQL语句是否可行?

最佳答案

使用Cursor.fetchone获得单行,或 Cursor.fetchmany/Cursor.fetchall获取许多或所有结果行。

row = cur.fetchone()
a = row[0]

UPDATE Cursor.execute 执行单个sql语句,所以单独执行语句(通过拆分sql;)

import pymysql
con = pymysql.connect(user='root', password='root')
cur = con.cursor()
sql = "SELECT @a := 0; SELECT @a := @a+2; SELECT @a;"
for stmt in sql.split(';'):
if stmt.strip():
cur.execute(stmt)
row = cur.fetchone()
a = row[0]
print(a) # => 2

关于python - 如何使用 pymysql 从多个 select 语句中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41787152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com