我的代码有问题,我有一个数据库(aoidata.sqlite),我想打印列表中“comptype”(column)是元素之一的所有行
数据库:
代码:
import sqlite3
conn = sqlite3.connect('aoidata.sqlite')
c = conn.cursor()
listOfStatements = []
listID = [2, 3, 60]
rangeID = len(listID)
for i in range(rangeID):
c.execute("SELECT * FROM boardcomponents WHERE comptype=?", (listID[i],))
x = c.fetchone()
listOfStatements.append(x)
if x is not None:
x = c.fetchone()
listOfStatements.append(x)
else:
continue
conn.commit()
conn.close()`
输出:
(1, 'J4', 35.0, 180.0, 83.9999, 252.0, 0, 10.0, 10.0, 10.0, 4, 2)
(2, 'J3', 463.0, 351.0, 83.9999, 252.0, 2, 10.0, 10.0, 10.0, 4, 2)
(3, 'J6', 269.0, 480.0, 188.0, 141.0, 2, 10.0, 10.0, 10.0, 4, 3)
(195, 'T2_1', 1731.42, 711.765, 60.6912, 60.6912, 0, 50.0, 50.0, 10.0, 4, 60)
(196, 'T2_2', 2584.31, 700.237, 59.1059, 59.1059, 0, 50.0, 50.0, 10.0, 4, 60)
在我的输出中,我只得到两行comptype
是60,但在我的数据库中,我得到了8。怎么了?我该怎么修
if
只获取第二行,然后就完成了。您希望使用while
循环来获取所有行正如@SergeBallesta所指出的,你不必那么做;只需使用
c.fetchall()
获取所有结果还要注意的是,通过一次查询所有的值,SQL可以变得更加高效
您可以使用以下内容构建此查询
相关问题 更多 >
编程相关推荐