我使用的是pythonmysql连接器,我想知道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条答案
按热度按时间zzoitvuj1#
否,除非存储了行计数值。
实际上,cursor对象都不会给出流式结果,您应该通过limit/offset关键字逐批迭代整个表。