2016-09-26 208 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