Получить MySQL курсора количество строк без выборки
Я использую Python MySQL Connector, и я хочу знать, сколько строк вернуло мое выражение select без необходимости их предварительного извлечения. Пример кода, который я использую:
import mysql.connector
config = {
'user': 'sample_user',
'password': 'sample_password',
'host': '127.0.0.1',
'database': 'sample_database'
}
connection = mysql.connector.connect(**self.config)
cursor = connection.cursor()
query = """
SELECT *
FROM sample_table
"""
cursor.execute(query)
count = cursor.rowcount
print(count) # This prints -1 as the rows have not yet been fetched
i = 0
for row in cursor:
i += 1
# Save row to file
print("Progress {:2.1%}".format(i / count), end="\r") # This prints a negative number since count is -1
Я хочу показать прогресс выборки, но для этого мне нужно общее количество строк, выбранных с помощью SELECT
заявление до получения.
Есть ли способ получить количество строк без выборки или запуска отдельного SELECT COUNT(*)
запрос первым?
1 ответ
Нет, если вы не сохранили значение счетчика строк в противном случае.
И на самом деле ни один объект курсора не даст поточный результат, вы должны выполнять итерацию всей таблицы по пакетам через ключевые слова limit/offset.