所以我正在尝试学习sqlite以及如何在Ipython笔记本中使用它,我有一个名为db的sqlite对象。
我正在执行此命令:
SEL =" " " SELECT * FROM候选人;" " "
C = db.cursor()。执行(SEL)
当我在下一个单元格中执行此操作时:
c.fetchall()
它会打印出所有行但是当我再次运行同一个命令时,即我运行
c.fetchall()
再次它没有打印出任何内容,它只显示两个方括号,里面没有任何内容。但是,当我运行上面的第一个命令,即c=db.cursor().execute(sel)
,然后运行db.fetchall()
时,它再次打印出表格。
这很奇怪,我不明白,这是什么意思?
答案 0 :(得分:1)
这是因为.fetchall()
使你的光标(c)指向最后一行。
如果你想再次选择你的数据库,你应该再次执行。
或者,如果您只想再次使用获取的数据,则可以将c.fetchall()
存储到变量中。
答案 1 :(得分:0)
它返回空列表,因为游标指向表的最后一行。
sel=" " " SELECT * FROM candidates;" " "
c=db.cursor().execute(sel)
c.fetchall()
如文档中所示(此例程获取查询结果的所有(剩余)行,返回列表。当没有行可用时返回空列表。)