首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pymysql从多个select语句中获得结果

问如何使用pymysql从多个select语句中获得结果
EN

Stack Overflow用户
提问于 2017-01-22 03:53:44
回答 1查看 5.2K关注 0票数 2

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

代码语言:javascript
复制
>>> 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建议),我也不会得到我所需要的:

代码语言:javascript
复制
>>> cur.execute(sql)
1
>>> cur.fetchall()
[{u'@a := 0': 0}]

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-22 03:59:47

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

代码语言:javascript
复制
row = cur.fetchone()
a = row[0]

UPDATE Cursor.execute执行单个sql语句,因此分别执行语句(通过;拆分sql )。

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41787152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档