mysql - 在 WHERE 中使用多个值进行更新

标签 mysql sql sql-update where-clause multiple-columns

当数据库中的字段符合两个条件时,我需要更新该字段 下面是我的代码
这是一个对于 WHERE 条件中的一个值运行良好的查询

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

但我需要匹配 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)  

但是这个给出了语法错误

请告诉我哪里做错了

最佳答案

我认为第一个 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)

关于mysql - 在 WHERE 中使用多个值进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18179859/

相关文章:

php - 在 PHP 中向 MYSQL 数据库添加记录不起作用

mysql - 如何在Mysql中以unix毫秒存储日期?

mysql - 尝试在 Bitnami 的 WordPress 多层堆栈中导入/导出 MariaDB 数据库时出现 2002 代码错误

php - 如果在查询中不考虑用户输入,使用 mysqli_query() 是否危险?

javascript - 使用 php ajax jquery 从 mysql 发送或获取数据 - 什么是安全方法?

mysql - 使用 PHPExcel 读取 XLSX 表以提供 MySQL 表

php - 如何在 codeigniter 中查询 JSON 数据类型?

sql - 如果列已更新,则将变量用于 UPDATE() 检查器

java - JDBC - 如何更新日期 -1 的记录

mysql - 如何使用复合主键进行删除