gpt4 book ai didi

python - MySQLdb Python 更新匹配行与更改行

转载 作者:行者123 更新时间:2023-11-29 02:25:05 25 4
gpt4 key购买 nike

从 mysql 客户端命令行,我在 UPDATE 后得到了有用的信息,告诉我有多少行与 WHERE 子句匹配,以及有多少行实际上被更改了。在我将值设置为现有值的情况下,我得到 1 个匹配和 0 个更改。

这是我想在我的 Python MySQLdb 脚本中捕获的非常有用的信息。我试过 db.affected_rows() 和 cursor.rowcount 但它们总是出现 1(似乎是“匹配”值)。我已经尝试过提交和不提交。

如何在 Python 中同时找到 Match 值和 Changed 值?

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?

最佳答案

默认情况下,db.affected_rows()cursor.rowcount 应该为您提供更改的行数。 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

关于python - MySQLdb Python 更新匹配行与更改行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23890904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com