python调用mysql中的自定义变量,为什么返回的值都是None

self.__cur=self.__db.connection()str1="set@mytemp=0;select*from(SELECT(@mytemp:=@myte... self.__cur=self.__db.connection()
str1="set @mytemp = 0;select * from (SELECT (@mytemp:=@mytemp+1) as newid,aid FROM person_in_active order by id desc) AS A WHERE A.aid=%s"
self.__cur.execute(str1,id)
num=self.__cur.fetchall()

代码如上,目的是获取某个id在数据库的第几行。
但是返回值(num)
一直都是None。
很无解!
展开
 我来答
xpresslink
推荐于2018-04-04 · TA获得超过3705个赞
知道小有建树答主
回答量:272
采纳率:87%
帮助的人:100万
展开全部

你写的代码中格式化字符串方法有问题.应该改成下面这样.

self.__cur=self.__db.connection()
str1="set @mytemp = 0;select * from (SELECT  (@mytemp:=@mytemp+1) as newid,aid FROM person_in_active order by id desc) AS A WHERE A.aid=%s"
self.__cur.execute(str1 % id)
# 把","改成 % 才行, 作用是把str1中%s替换成id的值.
num=self.__cur.fetchall()
bdwisyou7d
2015-02-03 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1075万
展开全部
因为你的SQL里的%s没有赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式