Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python fetchone只返回我表中的最后一项?_Python_Sqlite - Fatal编程技术网

Python fetchone只返回我表中的最后一项?

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

来自学习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_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行。