我有一个包含一些性能数据的SQLite数据库。我想从一个名为时间的表中查询一些数据,这些数据满足一些约束条件:
我对DofPEPV的不同条目感兴趣。所以我的查询看起来像这样:
SELECT DISTINCT DofPEPV FROM timings WHERE nProcs='32' AND DofPEPV<='4096'
查询在python中执行:
sqlcon = sqlite3.connect('database.file')
selquery = 'SELECT DISTINCT DofPEPV FROM timings WHERE nProcs=\'32\' AND DofPEPV<=\'4096\''
for val in sqlcon.execute(selquery):
print(val)
像魅力一样工作,除了还有写入超过4096的值,例如29791.这怎么可能发生?
答案 0 :(得分:3)
您不是在这里比较整数值,而是在比较字符串值。
您想要做的是:
SELECT DISTINCT DofPEPV FROM timings WHERE nProcs= 32 AND DofPEPV<= 4096;
答案 1 :(得分:2)
SELECT DISTINCT DofPEPV FROM timings WHERE nProcs='32' AND DofPEPV<='4096'
是4096是字符串吗?如果这是整数擦除“..”,请使用此
SELECT DISTINCT DofPEPV FROM timings WHERE nProcs=32 AND DofPEPV<=4096