获取 MySQLdb 中的行数

Get row count in MySQLdb

有没有比执行以下操作更好的获取行数的方法?

cursor.execute("SELECT DISTINCT(provider_id) FROM main_iteminstance")
num_items = len(cursor.fetchall())

上面的MySQLdb里面有shorthand吗?

您可以直接在 cursor.execute 上执行以下 SQL 而不是依赖于 MySQLdb:

cursor.execute("SELECT COUNT(DISTINCT provider_id) FROM main_iteminstance")

然后您就可以得到该查询的结果。

cursor.execute的结果returns查询返回的行数,所以只需分配给一个变量。

num_items = cursor.execute("SELECT DISTINCT(provider_id) FROM main_iteminstance")

这也行得通,您不必运行额外的查询就可以得到项目的数量