我正在摆弄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
这笔交易是什么?
答案 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()