Python2.7SQLite3游标只返回一个结果
我在摆弄Python和SQLite。我有一张这样的桌子: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(“从测试中选
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()
!