2016-09-26 4 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
오히려 필드 _77과 같다 행의 수를 계산하는 예를 들어, 파이썬 코드 에

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

Source

쿼리를 세는 것보다 수를 반환하는 쿼리를 변경

또한 필드가 _75와 (과) 다른 위치를 쿼리합니다. 한 번호를 다른 번호에서 가져옵니다. 또는 테이블에있는 항목 수를 계산하십시오.

+0

사실 리셋 기능을 찾고 있습니다. 데이터베이스를 반복하면서 매치가 0이되도록하고 싶습니다. 그 이후의 모든 항목은 일치 항목이 다시 발견 될 때까지 -1만큼 증가합니다. 그러면 0으로 재설정됩니다. 고마워요. – rj23

+0

으로 myList = 1,2,3,4,1,5,1,3,2,4,5,6,7] 제가 myList에있는 경우 : 만약 == 1 카운트 = 다른 0 : 카운트 = 카운트 -1이 코드는 정확히 내가 그것을 데이터베이스 작업을 얻을 수있는 방법 목록을 사용하여 원하는 방법을 작동 인쇄 (수를) . – rj23

+0

문제점을 발견했습니다. 반복은()와, 때문에 발생하지 않았습니다. 쿼리를 실행할 때 어떻게 괄호와 쉼표를 제거합니까? – rj23