如何通过PyMSQL在UPDATE语句中获取受影响的行

isl*_*and 5 python mysql pymysql

看标题,我需要通过PyMYSQL更新mysql数据库上的一些行,我想知道已经更改了多少行.

码: import pymysql db = pymysql.connect(xxxx) cur = db.cursor() sql = "update TABLE set A = 'abc' where B = 'def'" cur.execute(sql, params) db.commit()

Elz*_*ugi 9

MySQL提供了一个特殊的电话,这将帮助你实现正是:mysql-affected-rows.此功能在更新时特别有用,因为它只返回受影响的行数,而不是更新值相似的行数.文档在这里.

如何在Python中使用它?在返回execute命令正是这种回报你.

affected_rows = cur.execute(sql, params)
Run Code Online (Sandbox Code Playgroud)

  • Thx,但是每个返回值都是0,甚至有些行会受到影响。为什么? (2认同)

小智 6

您可以cursor.rowcount在执行阶段之后执行此操作。如果该函数的返回值与0相反,则意味着一行或多行受到影响。