2016-06-12 7 views
0

私はこのコードを試していて、私にエラーを与え続けています。 テーブルの名前と同じ行にロールを追加したいので、名前を見つけるためにWHEREを使うことを考えていましたが、SQLコードの何かが間違っています。PythonでINSERTデータWHEREを正しく使用するにはどうすればいいですか(MySQLdbインポート)?

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()

答えて

0

SQLのINSERTは、常に新しい行を作成します。既存の行(または複数行またはすべての行)を変更する場合は、を使用してください。の更新番号は、UPDATE team SET role=%s WHERE name=%sです。

注意nameがテーブルの(単一列の)PRIMARY KEYまたはUNIQUE制約として定義されていない場合、このコードは既存の行と同じnameの追加行を作成することができます。そのような行の数は、このUPDATEはそれらのすべてに影響します。

関連する問題