我正在尝试使用 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'")