如何在Python中将光标移动到MySQL的最后一条记录?
我在我的Python脚本中使用MySQLdb库来连接MySQL数据库。
(参考链接: http://mysql-python.sourceforge.net/MySQLdb.html )。
我想知道有没有办法在使用Python时直接跳到结果集中的最后一条记录?
换句话说,我想把我的光标移动到结果集的最后一条记录上。
3 个回答
0
curs.execute("SELECT ghfhgf")
这行代码会返回一个整数,表示记录的数量。
如果你想在记录之间移动,比如说移动x步,可以用下面这行:
curs.scroll(x)
所以你可以这样写:
curs.scroll(curs.execute("SELECT hgffg"))
这也可以帮到你。
0
如果你觉得这个查询对数据库的压力不大,而且机器的内存也足够的话,你可以把查询结果存储在一个列表里,然后直接从这个列表中取出最后一个对象:
import MySQLdb
conn = MySQLdb.connect(host='',user='',passwd='')
curs = conn.cursor()
curs.execute('show databases') # or whatever query
last_result = [x[0] for x in curs.fetchall()][-1]
1
你的问题有点奇怪。你为什么想这么做呢?
你可以一直从游标中读取记录,直到最后一条。不过,你得在读取之后才能知道是不是最后一条,之前是无法知道的。
还有一个办法是反向查询。你可以用 ORDER BY
来改变结果的顺序,这样最后一条就会排在最前面。
或者,如果你知道记录的数量,你可以使用 OFFSET
只返回最后一条记录。你可以先发一个 COUNT
查询来知道总共有多少条记录,然后再用这个数字在 OFFSET
中。