0

我正在尝试使用 IF 语句对 MySQL 表执行多次更新,其中 IF 语句的条件与我正在更新的表位于不同的表中。例如,我正在使用表 2 中的检查更新表 1。

MySQL 返回一个错误,说它无法找到 'table2.col1'。表和列都存在,所以我不确定为什么会出现此错误..

cursor = database.cursor() 
cursor.execute("""UPDATE table1 SET col1 = IF(table2.col1= 2, 3 , table1.col1),
                                    col2 = IF(table2.col1= 2 ,%s , table1.col2),
                                    col3 = IF(table2.col1= 2 , %s , table1.col3),
                                    col4 = IF(table2.col1= 2 , %s , table1.col4)                 
WHERE id =%s""", (val2, val3, val4, id))
database.commit()   

错误:

  _mysql_exceptions.OperationalError: (1054, "Unknown column 'table2.col1' in 'field list'")
4

1 回答 1

0

你需要加入table2。试试这个

    UPDATE table1 INNER join table2
   ON ....
   SET col1 = IF.....
于 2013-06-27T10:55:51.357 回答