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

标签 django mysql

在此处关闭文档: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

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

(注意:我试过 transaction.commit_unless_managed() 和 cursor.fetchone()(还有 cursor.fetchall())的放置/顺序,它似乎没有什么不同)

谢谢! -汤姆

最佳答案

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

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

关于Django - 执行原始 SQL 更新/删除并返回行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972086/

相关文章:

python - 允许在 Django Rest Framework 序列化器字段名称中使用连字符

python - Django 绝对导入

mysql - 如何从一列中获取不同的值及其在另一列中的所有对应值

php - 如何在 foreach 中使用(或组合)多个数组

mysql - 复杂的sql查询返回结果为空表

django - 打开新的浏览器选项卡会使 Django 的 CSRF token 失效,从而阻止表单提交

python - 使用未保存的相关对象保存对象

python - django 中的语法错误

php - AJAX GET 到 PHP 文件的问题

php - Laravel ORM/查询生成器如何获取下一页结果/内容