我可以在Python MySQLdb中设置用户定义变量吗?
我的问题是这样的,我有一个查询,它使用了Mysql的用户定义变量,比如:
@x:=0 SELECT @X:=@X+1 from some_table
这段代码会返回一个从1到1000的列。
但是,当我通过Python中的mySQLdb发送这个查询时,它就不工作了。
connection =MySQLdb.Connect(host='xxx',user='xxx',passwd='xxx',db = 'xxx')
cursor = connection.cursor
cursor.execute("""SET @X:=0;SELECT @X:=@X+1 FROM some_table""")
rows = cursor.fetchall()
print rows
它打印出一个空的元组。
我该怎么解决这个问题呢?
谢谢!
2 个回答
10
试着一次只执行一个查询:
cursor.execute("SET @X:=0;");
cursor.execute("SELECT @X:=@X+1 FROM some_table");
3
试着把它分成两个查询。
如果你想把它做成一个查询,MySQL用户变量文档中的评论示例看起来是这样的:
SELECT @rownum:=@rownum+1 rownum, t.* FROM (SELECT @rownum:=1) r, mytable t;
或者
SELECT if(@a, @a:=@a+1, @a:=1) as rownum
可以查看 http://dev.mysql.com/doc/refman/5.1/en/user-variables.html