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