[英]Python - SQL UPDATE not updating every row
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]
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 game_id = %s AND time = %s""", (team_id, game[0], time))
db.commit()
在应该更新的108行中,它仅更新了大约10行,我不知道为什么会这样。 它提取SELECT语句中的所有信息。 这可能很明显,但是已经晚了哈哈。
团队人数是1或2,最初是表示主场或客场
谢谢
查询是:
UPDATE football.match_own_goals
SET team_id = %s
WHERE game_id = %s AND time = %s
如果有时这样做是可行的 ,那么该查询在语法上是正确的,并且您已连接到数据库。
发生的情况是所选行不是您期望的。 因此,运行此查询以查看应更新的内容:
select *
from football.match_own_goals
WHERE game_id = %s AND time = %s
这两个字段之一导致比较出现问题。
我的猜测是时间字段是问题。 时间可以非常精确,比打印到用户输出的时间更精确。 例如,时间可能维持在1/10秒,但时间只打印到1秒。 只有大约1/10的行真正匹配完全匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.