python 2.7 sqlite3游标只返回一个结果

时间:2013-12-08 00:24:45

标签: 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("SELECT cid FROM test WHERE pid=?", (the_related_id,)).fetchmany()

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

这笔交易是什么?

1 个答案:

答案 0 :(得分:1)

每次调用获取的行数由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()