使用新值更新sql中的行

时间:2016-05-29 13:25:40

标签: python mysql

我正在使用python。我想用新值更新sql的每一行。 我的代码是:

val = cursor.execute("select id from tweeter1")
    words= processedRow.split()
    fdist2=len(words)
    for id1 in val:
        cursor.execute("""UPDATE TWEETER1 SET t1=%s where id = %s""",(fdist2,id1))
        db.commit()

当我执行此代码时,我收到错误消息:

  

表示val中的id1:   TypeError:' long'对象不可迭代

任何帮助都将受到高度赞赏。谢谢

1 个答案:

答案 0 :(得分:0)

您必须遍历游标对象:

cursor.execute("select id from tweeter1")
words = processedRow.split()
fdist2 = len(words)
for id1 in cursor.fetchall():
    cursor.execute("""UPDATE TWEETER1 SET t1=%s where id = %s""",(fdist2,id1))
db.commit()

但只要您将所有行更改为相同的值,您只需要在没有任何where子句的情况下更新一次:

words = processedRow.split()
fdist2 = len(words)
cursor.execute("""UPDATE TWEETER1 SET t1=%s""",(fdist2,))
db.commit()