如何在python(MySQLdb导入)中正确使用INSERT数据WHERE?

时间:2016-06-12 16:53:03

标签: mysql-python

我正在尝试此代码,并一直给我错误。 我希望第3个用于cicle将角色添加到与表中名称相同的行中,所以我在考虑使用WHERE来查找名称,但是sql代码中的某些内容是错误的我无法找到它。

for member in soup.findAll("div", {"class": "member-info"}):
    for membername in member.findAll("div", {"class": "member-name"}):
        print(membername.text)
        mn=membername.text
        cur.execute("""INSERT INTO team (name)
        VALUES (%s)""",
        [
        (membername.text)
        ])
    for memberrole in member.findAll("div", {"class": ""}):
        print(memberrole.text)
        cur.execute("""INSERT INTO team (role)
        VALUES (%s)
        WHERE name=%s""",
        [
        (memberrole.text),
        (mn)
        ])
db.commit()
db.close()

1 个答案:

答案 0 :(得分:0)

SQL INSERT始终创建一个新行。如果您想要更改现有行(或多行或所有行)中的内容使用更新,请UPDATE team SET role=%s WHERE name=%s

注意,如果name未定义为表的(单列)PRIMARY KEY或具有UNIQUE约束,则此代码可以创建与现有行具有相同name的附加行,并且如果你重复这个过程无限数量的这样的行,这个UPDATE会影响所有这些行。