2017-04-24 9 views
1

を更新データベースから取得したキーが一致する必要があることを確認します。私は間違って何をしていますか?私は、私はこれは愚かなquestiongですが、どのようにsqliteの中にそのキーにそれを照合することによって、列を更新することを意図している、私はこの方法をしようとしていますが、私は何のマッチを取得していない保つことを知っているsqlite3ののcolomn、キーマッチの問題

c.execute('''SELECT ROUND(AVG(ft.score), 2), st.subreddit_id 
     FROM posts as ft JOIN subreddits as st ON st.subreddit_id == ft.subreddit_id 
     GROUP BY 2 
     ORDER BY 2 desc 
     ''') 

average = [] 
for rows in c.fetchall(): 
    average.append(rows) 

for index in average: 
    start = time.time() 
    print(index) 
    try: 
     c.execute('''UPDATE subreddits SET average_score = ''' + str(index[0]) + ''' WHERE ''' + str(index[1]) + ''' == subreddit_id;''') 
     print(str(index[1])) 
    except sqlite3.OperationalError: 
     print('{} not found'.format(index)) 

答えて

1

あなたはsqlite3のは、適切なエスケープを行うことができるように.execute()に2番目の引数として、あなたのパラメータを渡す必要があります。構文エラー==もあります。これを試してみてください:

c.execute('''UPDATE subreddits 
      SET average_score = ? WHERE ? = subreddit_id;''', (index[0],index[1])) 
+0

はありがとうございました! – kopo222

+0

に巻き込まれるためにこのような愚かなことは、あなたは非常に歓迎しています。ハッピーコーディング:-) – bernie

関連する問題

 関連する問題