如何在Python中将光标移动到MySQL的最后一条记录?

1 投票
3 回答
3705 浏览
提问于 2025-04-15 17:37

我在我的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 中。

撰写回答