2

以下の2つの条件に一致する場合、データベースのフィールドを更新する必要があります。これは私のコードです。これは、条件
の1つの値に対して正常に機能するクエリですWHERE

query2 = "UPDATE  Game_mygame 
          SET game_played = "+str(set_game_played)+" 
          WHERE home_teamID = "+str(i.home_teamID) 

しかし、2つの値を一致させる必要がありWHERE、次のことを試みています

query2 = "UPDATE  Game_mygame 
              SET game_played = "+str(set_game_played)+" 
              WHERE home_teamID = "+str(i.home_teamID)+ 
                    "AND away_teamID = "+str(i.away_teamID)  

しかし、これは構文エラーを与えます

私が間違っているところを教えてください

4

2 に答える 2

2

WHERE最初の条件との間にスペースはないと思いますAND。したがって、クエリはWHERE home_teamID=xyzANDではなくこのようになりWHERE home_teamID=xyz ANDます。したがって、前に余分なスペースを与える必要がありますAND(前に与えたのと同じですWHERE

query2 = "UPDATE  Game_mygame 
              SET game_played = "+str(set_game_played)+
              " WHERE home_teamID = "+str(i.home_teamID)+ 
              "AND away_teamID = "+str(i.away_teamID)
           ---^^--- Space is missing here

だからこれを試してください:

query2 = "UPDATE  Game_mygame 
              SET game_played = "+str(set_game_played)+
              " WHERE home_teamID = "+str(i.home_teamID)+ 
              " AND away_teamID = "+str(i.away_teamID)
于 2013-08-12T05:12:46.593 に答える
1

.likeで連結

query2 = "UPDATE  Game_mygame 
          SET game_played = ".str(set_game_played)." 
          WHERE home_teamID = '". str(i.home_teamID) ."'
          AND away_teamID = '".str(i.away_teamID)."'";  

また、@Preet Sanghaが言ったように、引用符なしでIDを使用できます

query2 = "UPDATE  Game_mygame 
          SET game_played = ".str(set_game_played)." 
          WHERE home_teamID = ". str(i.home_teamID) ."
          AND away_teamID = ".str(i.away_teamID);  
于 2013-08-12T05:07:43.907 に答える