不获取mysql游标行数

z8dt9xmd  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(324)

我使用的是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(*) 先查询?

zzoitvuj

zzoitvuj1#

否,除非存储了行计数值。
实际上,cursor对象都不会给出流式结果,您应该通过limit/offset关键字逐批迭代整个表。

相关问题