2017-01-25 3 views
0

Я использую PyMySQL 0.7.9 с MySQL 5.1.73. Я должен сделать две операции, используя один и тот же PyMySQL-курсор. После завершения первой операции над курсором мне нужно вернуть курсор к началу.Приведение курсора PyMySQL в начало

import pymysql; 

cursor.execute("my query"); 
# First operation 
for row in cursor : 
    # run update query to update status flag for all rows fetched. 

# Second Operation 
for row in cursor : 
    # run some more commands for the rows. 

Я добавил

cursor.rownumber = 0
перед второй операцией. Это сработало. Но есть ли какая-либо функция PyMySQL, благодаря которой я могу добиться того же? Есть ли что-нибудь подобное в PyMySQL к http://php.net/manual/en/mysqli-result.data-seek.php

+1

Вы можете использовать 'Cursor.scroll (0, mode = 'absolute')'. Он будет буквально делать то же самое, что и 'cursor.rownumber = 0' (потому что это то, что будет выполнено внутри этой функции). – Solarflare

+0

cursor.scroll работал. Большое спасибо @Solarflare. Пожалуйста, поставьте это как ответ. Я выберу его. – bgth

ответ

1

Согласно определению API, вы можете использовать scroll функцию:

cursor.scroll(value [, mode='relative' ])

Scroll курсор в наборе результатов в новое положение в зависимости режим.

Если режим относительно (по умолчанию), значение принимается в качестве смещения к текущему положению в наборе результатов, если установлен в абсолютной, значение состояний абсолютной целевой позиции.

Так, чтобы перейти к первой строке, вы можете использовать

cursor.scroll(0, 'absolute') 

Внутри pymysql будет на самом деле просто выполнить cursor.rownumber = 0 тоже.

Это будет работать только с обычным cursor, а не с небуферизованным SScursor, где вы (в настоящее время) можете прокручивать вперед.

Смежные вопросы