MySQLdb Python更新匹配行与更改行

2024-10-01 02:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

在更新之后,我从mysql客户机命令行获得有用的信息,告诉我WHERE子句匹配了多少行,以及实际更改了多少行。在我将这些值设置为现有值的情况下,我得到1个匹配值,0个已更改。在

这是我想在pythonmysqldb脚本中捕获的非常有用的信息。我试过了数据库受影响行()和cursor.rowcount但结果总是为1(似乎是“匹配”值)。我试过有承诺和没有承诺。在

如何在Python中找到匹配值和更改后的值?在

mysql> UPDATE userlogtable SET somefield="samedata" WHERE idxfield=1;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> UPDATE userlogtable SET somefield="newdata" WHERE idxfield=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

相关但不重复的问题: Python MYSQLdb documentation missing details?


Tags: 信息mysqlupdateoksecwherequeryrows
1条回答
网友
1楼 · 发布于 2024-10-01 02:19:11

默认情况下,db.affected_rows()和{}应该给出更改的行数。FOUND_ROWS选项使cursor.rowcount返回匹配的行数:

db_connection = MySQLdb.connect(
        host = settings['dbHost'],
        user = settings['dbUser'],
        passwd = settings['dbPass'],
        db = settings['dbName'],
        client_flag = MySQLdb.constants.CLIENT.FOUND_ROWS
        )

要获得匹配行数和更改行数的两种方法,请查看以下问题:

How to get matched Rows from MySQLdb.cursors.Cursor python2.6

相关问题 更多 >