Python-SQL更新不是每更新一次

2024-04-25 23:39:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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,最初的意思是表示主场或者客场

谢谢


Tags: frominfoidgamehomeexecutetimematch
1条回答
网友
1楼 · 发布于 2024-04-25 23:39:42

查询是:

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/10秒。只有大约1/10的行会真正匹配一个精确匹配。你知道吗

相关问题 更多 >