c.execute("SELECT * FROM Entries WHERE CPU=CPU")
for i in range(3):
print(c.fetchone())
返回:
('...','...','...','...','...','...','CPU','......', '...','...','...','...','...','...','...','...','。 ..','...','...')
('...','...','...','...','...','...','TEST','...','.. 。','...','...','...','...','...','...','...','...' ,'......','......')
('...','...','...','...','...','...','TEST','...','.. 。','...','...','...','...','...','...','...','...' ,'...','...')
我不明白为什么当CPU不等于CPU时,为什么我得到最后两行......
答案 0 :(得分:3)
CPU=CPU
就是问题所在。这是因为SQL中的非null 列始终等于它自己。因此,您的查询将返回CPU
列中没有空值的表中的所有内容。
修复方法是将字符串'CPU'
包装在所需的引号周围,如下所示:
c.execute("SELECT * FROM Entries WHERE CPU='CPU'")
for i in range(3):
print(c.fetchone())
我希望这证明有用。