【问题标题】:Python printing out SQL statement resultsPython打印出SQL语句结果
【发布时间】:2024-10-17 03:30:02
【问题描述】:

我有以下带有 pymysql 的 python 代码

    cursor=conn.cursor()
    cursor.execute("""select count(distinct `session_id`) from innodb.fh where `cs-uri-stem` like "/detail%"   """)
    cursor.fetchone()

这工作正常。但我只是想知道如何打印出我的 sql 语句的结果。它应该打印出 1204。我尝试了以下方法,但它不起作用:

       results = cursor.execute("""select count(distinct `session_id`) from innodb.fh where `cs-uri-stem` like "/detail%"   """)
       print (results)

谢谢!

【问题讨论】:

  • 你想提取什么? fetchall() 有什么好处吗?
  • 可能我没有清楚地解释我的问题。我的代码中的 sql 语句将返回“1204”作为结果。但我只是想知道如何在 python 中打印出这个 1204 的东西
  • 如果您尝试在执行cursor.execute() 时获取受影响的行数,请注意这取决于您使用的数据库连接器。例如,对于带有 psycopg2 的 Postgres,您可以使用 cursor.rowcount
  • 所以澄清一下。您使用的是什么数据库连接器软件? PyMySQL?心理战2?更简单地说:您使用什么库来获取 cursor
  • @AkshatMahajan 嗨,我用的是 pymysql

标签: python mysql sql python-2.7 python-3.x


【解决方案1】:

PyMySQL 游标定义了一个名为rowcount 的属性,如source code 所示。

紧跟cursor.execute()之后,可以调用cursor.rowcount获取受SQL语句影响的行数。

【讨论】: