Python - 无法更新90%的行

时间:2013-02-28 18:15:51

标签: python mysql

cur.execute("""SELECT match_own_goals.game_id, home_team, away_team, team, time 
                 FROM football.match_own_goals 
                 JOIN football.match_info 
                 ON match_own_goals.game_id = match_info.game_id""")
e = cur.fetchall()

for game in e:
    print game
    time = game[4]
    print type(time)
    if game[3] == 1:
        team_id = game[1]
    else:
        team_id = game[2]
    cur.execute("""UPDATE football.match_own_goals 
                   SET team_id = %s 
                   WHERE time = %s AND game_id = %s""", (team_id, time, game[0]))
db.commit()

这已经更新了大约10%的行,不明白为什么。时间实际上是一个浮点数(它不代表时间,更像是足球比赛中的一个时间点,例如87分钟,54分钟)。

时间肯定是问题,因为当我删除它时工作正常,但我真的需要它在那里用于其他表。

我做错了什么?感谢

1 个答案:

答案 0 :(得分:1)

time = %s这绝对是一个问题(你无法正确地将浮点数与方程运算符进行比较,请阅读更多相关信息here)。