我正在尝试使用IF语句对MySQL表执行多次更新,其中IF语句的条件与我正在更新的表位于不同的表中。例如,我正在使用表2中的检查更新表格。
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'")
答案 0 :(得分:0)
你需要加入table2 .try this
UPDATE table1 INNER join table2
ON ....
SET col1 = IF.....