我有一个关于 Python 和 sqlalchemy 模块的问题。cursor.rowcount
sqlalchemy Python 中的等价物是什么?
honzas
问问题
19219 次
3 回答
36
ResultProxy
对象也有rowcount
属性。
于 2009-03-31T18:21:52.733 回答
22
rowcount
不是受影响的行数。它的匹配行数。看看医生怎么说
此属性返回匹配的行数,它不一定与实际修改的行数相同- 例如,如果给定的 SET 值与那些已经出现在行中的人。这样的行将被匹配但不会被修改。在具有两种样式的后端(例如 MySQL)上,
rowcount
默认配置为在所有情况下都返回匹配计数
因此对于以下两种情况rowcount
都会报告1
。因为Rows matched: 1
一行更改为
update
语句。Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
执行相同
update
的语句。Query OK, 0 row affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
于 2017-04-21T08:57:47.647 回答
2
Shiplu 所说的当然是正确的,但是,要回答这个问题,在许多情况下,您可以通过在 WHERE 子句中包含值不同的条件来轻松地使匹配的列等于更改的列,即:
UPDATE table
SET column_to_be_changed = "something different"
WHERE column_to_be_changed != "something different" AND [...your other conditions...]
rowcount
然后将返回受影响的行数,因为它等于匹配的行数。
于 2018-12-07T15:47:37.397 回答