2016-08-26 24 views
2

影響在UPDATE語句如何獲得行看到標題,我需要更新由PyMYSQL對mysql數據庫中的某些行,我想知道有多少行已經改變。通過PyMSQL

代碼: import pymysql db = pymysql.connect(xxxx) cur = db.cursor() sql = "update TABLE set A = 'abc' where B = 'def'" cur.execute(sql, params) db.commit()

回答

6

MySQL提供了一個特殊的電話,這將幫助你實現正是:mysql-affected-rows。此函數在更新時特別有用,因爲它僅返回受影響的行數,而不是更新值相似的行數。文檔是here

如何在Python中使用它? execute命令的return將完全返回給您。

affected_rows = cur.execute(sql, params) 
+0

Thx,但是每個返回值都是0,甚至有些行也會受到影響。爲什麼? – island

+0

是的,我明白了,非常感謝! – island

1

在執行階段後,您可以通過cursor.rowcount執行此操作。如果返回值與0相反,則意味着一行或多行受到影響。

+0

Thx,但每個返回值都是0,即使是一些行也會受到影響。爲什麼? – island

+0

在執行「db.commit()」之前或之後,我得到rowcount是否有劑量問題? – island

+0

我明白了,非常感謝! 我只寫了一個錯誤的UPDATE語句! – island