2016-09-26 125 views
-1

我正在尝试创建一个程序,它将遍历数据库以匹配“_75”的查询,并在进行匹配时将计数设置为0。对于数据库中与查询不匹配的每条记录,我都希望它累积负数1。无论我如何尝试代码,我都会得到总记录数或匹配查询的总记录。数据库查询计数

import sqlite3 

conn = sqlite3.connect('p34.db') 

c = conn.cursor() 
q = "SELECT * FROM 'Pick 3'" 
z = "SELECT * FROM 'Pick 3' WHERE Number LIKE '_75' ORDER BY Draw DESC;" 

c.execute (q) 
rez = c.fetchall() 
count = 0 
for row in rez: 

if row == rez: 
count = 0 
else: 
count = count -1 

print (count) 
conn.close() 

我的示例为查询_75期望的结果。

record 1 075 count 0 
record 2 223 count -1 
record 3 228 count -2 
record 4 323 count -3 
record 5 275 count 0 
record 6 888 count -1 
+2

请更正您的缩进,并告诉我们您的代码存在问题。 – Kasramvd

+0

z做什么?它不在你的代码中使用 –

+0

我最初尝试使用z代码。 q被用于测试。使用z时,我得到其中包含字符串75的记录总数。那我不是期望的结果。我希望程序在进行匹配时将计数设置为0,并且对于与字符串不匹配的每条记录,计数为-1。 – rj23

回答

0

更改您的查询返回的计数,而不是在Python代码 计数例如

SELECT COUNT(CustomerID) AS OrdersFromCustomerID7 FROM Orders WHERE CustomerID=7; 

Source

查询计数的行数,其中场就像是_75和还查询哪些字段不是_75。从另一个号码中取一个号码。或者只计算表中有多少条目。

+0

我其实正在寻找重置功能。当我遍历数据库并且有匹配时,我希望计数重置为0.之后的每个条目都会增加-1直到再次找到匹配。然后它将被重置为0.谢谢。 – rj23

+0

MYLIST = [1,2,3,4,1,5,1,3,2,4,5,6,7] 对于i在MYLIST: 如果我== 1: 计数= 0 其他: 计数=计数-1 打印(计数) 此代码的工作正是我希望它使用列表我怎样才能得到它的使用数据库。 – rj23

+0

我发现了这个问题。由于()和,迭代不起作用。当我执行查询时,如何删除括号和逗号? – rj23