Django - 执行原始SQL更新/删除并返回行计数

Tom*_*tes 13 mysql django

在这里取消文档:http://docs.djangoproject.com/en/dev/topics/db/sql/

>>>cursor = connection.cursor()
>>>cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])
>>>print cursor.fetchone()
None
Run Code Online (Sandbox Code Playgroud)

有谁知道如何返回修改后的行数?

(注意:我已经玩过transaction.commit_unless_managed()和cursor.fetchone()(还有cursor.fetchall())的位置/顺序,它似乎没什么区别)

谢谢!-Tom

Jar*_*die 29

您在示例中得到的UPDATE语句不会返回行结果,因此fetchone()将始终为空(或可能会引发错误).

使用cursor.rowcount获得最后受影响的行.