当前位置: 首页 > 知识库问答 >
问题:

如何计算返回的行数?

晏永康
2023-03-14
myDB = pymysql.connect(
  host="localhost",
  user="exampleuser",
  password="examplepassword",
  database="exampledb"
)

myCursor = myDB.cursor()
msg = "something"
SQL = "SELECT * FROM `example` WHERE `example`='" + msg + "'"
myCursor.execute(SQL)
myResult = myCursor.fetchall()

有时它可以返回多个结果。因此,我不认为fetchone会起作用。

如何在Python中计算行数?就像在PHP中一样,我可以使用mysqli_num_rows()

我找不到任何方法来做这件事。我正在使用Python3。

我对python MySQL绝对是新手。我对PHP中的MySQL真的很熟悉。

您可以使用len()来实现。但是,出于我的好奇:有没有方法直接使用pymysql来实现它?

共有2个答案

翟俊远
2023-03-14

至少有3种方法可以获得这些信息:

  • execute()方法返回DML语句受影响的行数和DQL语句提取的行数。
  • 相同的信息也将存储在只读属性rowcount中。
  • 如果您想知道列表中有多少元素,可以使用len()对元素进行计数。
myCursor = myDB.cursor()
msg = "something"
numRows = myCursor.execute("SELECT * FROM `example` WHERE `example`= %s", [msg])
myResult = myCursor.fetchall()
print(numRows, myCursor.rowcount, len(myResult))
宇文迪
2023-03-14

如果希望获得返回的行数,而不对resultset调用len,可以检查游标的rowcount属性。

myCursor = myDB.cursor()
msg = "something"
SQL = "SELECT * FROM `example` WHERE `example`= %s"
myCursor.execute(SQL, (msg,))
print('Number of rows is', myCursor.rowcount)
 类似资料:
  • 问题内容: 如何计算MySQL查询返回的行数? 问题答案: 获取查询结果中的总行数… 您可以仅迭代结果并计数。您没有说使用什么语言或客户端库,但是API确实提供了mysql_num_rows函数,该函数可以告诉您结果中的行数。 例如,这在PHP中作为mysqli_num_rows函数公开。编辑问题以提及您正在使用PHP时,这是一个使用mysqli函数的简单示例: 获取符合某些条件的行数… 只需使用

  • 问题内容: 如何计算存储过程将以最快的方式返回的行数。存储过程返回大约100K到1M记录的行。 问题答案: 选择: 执行存储过程后。

  • 问题内容: 我几年(2003-2008年)的数据分布不均(写日期)。我想查询给定开始日期和结束日期的数据,按PostgreSQL 8.3(http://www.postgresql.org/docs中支持的任何间隔(天,周,月,季度,年)将数据分组/8.3/static/functions-datetime.html#FUNCTIONS- DATETIME-TRUNC )。 问题在于,某些查询会在

  • 问题内容: 我有这样的台词,我想知道我实际上有几行… 有没有一种方法可以使用linux命令对它们进行计数? 问题答案: 用途: 这将输出行数: 或者,要从结果中省略,请使用: 您还可以通过管道将数据发送到:

  • 问题内容: 例如,这样简单的事情: 打印110.00000000000001而不是110。使用其他数字代替100 * 1.1还会给出很多数字,并且末尾有一些随机数字,这是不正确的。 有任何想法吗? 问题答案: 浮点符号的准确性有限。这是一个指南:http : //floating-point- gui.de/

  • 问题内容: 我需要计算管道聚合返回的结果集中的存储桶数。问题是我的查询在这里使用脚本选择器: 返回类似这样的内容: 在该键下,我可以看到一个满足我条件的访问者列表(由标识的每个访问者都必须在索引中恰好有三个文档),但这不是很有用,因为它可以处理成千上万的访问者。我正在使用PHP处理结果,从理论上讲,它可以计算结果集,但是对于大量的访问者来说,这并不是最好的主意。有没有一种方法可以仅在和旁边输出有效