Python2.7SQLite3游标只返回一个结果

Python2.7SQLite3游标只返回一个结果,python,sql,python-2.7,sqlite,Python,Sql,Python 2.7,Sqlite,我在摆弄Python和SQLite。我有一张这样的桌子: PID | CID | a | b ================= 1 | 1 | ... 1 | 2 | ... 2 | 1 | ... 2 | 2 | ... 其中PID是一个对象的ID,CID是另一个对象的ID。基本上,跟踪这两个对象之间关系的表,其属性(a、b等)可能覆盖这些对象的属性 在python中执行以下语句时(c是sqlite3游标): results=c.execute(“从测试中选

我在摆弄Python和SQLite。我有一张这样的桌子:

PID | CID | a | b
=================
1   | 1   | ...
1   | 2   | ...
2   | 1   | ...
2   | 2   | ...
其中PID是一个对象的ID,CID是另一个对象的ID。基本上,跟踪这两个对象之间关系的表,其属性(a、b等)可能覆盖这些对象的属性

在python中执行以下语句时(c是sqlite3游标):

results=c.execute(“从测试中选择cid,其中pid=?”,(与\u相关的\u id),).fetchmany()

我在列表中只得到一个结果,但是,当我在sqlite浏览器中运行相同的(?)查询时,我得到了许多预期的结果:
从pid=1的测试中选择cid


交易是什么?

每次调用要获取的行数由size参数指定。如果未指定,则光标的arraysize将确定要提取的行数

    results = c.execute("SELECT cid FROM test WHERE pid=?", (the_related_id,)).fetchmany(N)
将返回N行。 如果要检索所有行,请改用fetchall()函数:

    results = c.execute("SELECT cid FROM test WHERE pid=?", (the_related_id,)).fetchall()

fetchmany
一次返回n行,可以多次调用。改为使用
fetchall
。@JonClements请回答这个问题。就是这样。谢谢我完全忘记了
fetchall()