2015-01-05 2 views
1

Я работаю над своим скриптом python, так как хочу подсчитать каждую 69 строк в базе данных, чтобы получить список значений. Мне нужна помощь с моим кодом, потому что некоторые из них ошибаются.Поиск строк данных в базе данных

Когда я пытаюсь это:

test = con.cursor() 
test.execute("SELECT COUNT(*) FROM programs") 
x = test.fetchone()[0] 
running_total = 1 #Again, you want to start counting at 1 for some reason 
while running_total < x: 
    running_total += 69 
    print running_total 

Я получаю результат:

70 
139 
208 
277 
346 
415 
484 
553 
622 
691 
760 
829 
898 
967 
1036 
1105 

Вот что я хочу добиться:

1 
70 
139 
208 
277 
346 
415 
484 
553 
622 
691 
760 
829 
898 
967 
1036 

Я хочу вывести значения, начинающиеся с 1, затем 70, 139, 208 ... и т.д., пока я не получу последние 69 значений в базе данных. Пример: у меня есть строки 1104 в моей базе данных, и последние 69 строк, которые я хочу получить, это 1036 и игнорировать последнюю строку 1104.

Другой пример: если добавить еще 69 строк данных в базе данных, что у меня есть строки 1104, чтобы получить полные строки в общей 1173, последние 69 строк, я хочу, чтобы это 1104 и игнорировать последнюю строку 1173. Это будет зависеть от того, сколько строк данных я добавляю в базу данных.

Можете ли вы помочь мне, как я могу выводить значения, которые начинаются с 1, затем добавить до 69 каждый раз, чтобы сделать 70, 139, 208 ... и т.д., пока не получите последние 69 строк, а затем игнорировать последний ряд?

ответ

0

Вы должны использовать функции Диапазон/xrange:

range (Python3) и xrange (python2) имеют следующий вид: range(start, end, increment) где start является всеобъемлющим и end не является всеобъемлющим.

test = con.cursor() 
test.execute("SELECT COUNT(*) FROM programs") 
x = test.fetchone()[0] 
for running_total in xrange(1, x + 1, 69): 
    print(running_total) 

Это должно дать вам желаемый результат, не прибегая к приращению стиля C.

+0

Благодарим вас за помощь, проблема решена! –