Python fetchone只返回我表中的最后一项?
来自学习python和sqlite的noob的问题 我已经创建了包含50项(id,短语)的表短语 我希望依次从表中恢复每一行,并使用数据进行进一步处理。即 从第1行和流程中恢复(1,短语1),然后从第2行和流程中恢复(2,短语2),以此类推 当我运行代码时,我只得到表中的最后一项Python fetchone只返回我表中的最后一项?,python,sqlite,Python,Sqlite,来自学习python和sqlite的noob的问题 我已经创建了包含50项(id,短语)的表短语 我希望依次从表中恢复每一行,并使用数据进行进一步处理。即 从第1行和流程中恢复(1,短语1),然后从第2行和流程中恢复(2,短语2),以此类推 当我运行代码时,我只得到表中的最后一项 cur.execute('SELECT id FROM Phrase WHERE phrase = ? ', (phrase, )) phrase_id = cur.fetchone()[0] print(phrase
cur.execute('SELECT id FROM Phrase WHERE phrase = ? ', (phrase, ))
phrase_id = cur.fetchone()[0]
print(phrase_id, phrase)
输出
50 leadership
(其中分别为索引和短语50)
我做错了什么?为什么不返回第一行?关于如何调整“我的代码”以依次遍历所有行的建议?如果希望以特定顺序输出,则必须使用
order BY
指定所需的顺序
cur.execute('SELECT id FROM Phrase WHERE phrase = ? ORDER BY id', (phrase, ))
还只返回我第50行;与原始输出相同。那么50必须是包含该短语的第一个ID。您只选择了一个特定短语,而不是表中的每个短语,因为
WHERE phrase=?
所以您只需要获得领导力
短语的ID,因为这是您要求的。当我在SQLite中查看我的表时,我看到50行,以id和短语作为列标题。第1行是1/the,第2行是2/of,…,第49行是49/innovation,第50行是50/leadership。我的代码似乎只接收第50行。