跨多个表的MySQL IF语句

时间:2013-06-27 10:45:02

标签: mysql mysql-python

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

1 个答案:

答案 0 :(得分:0)

你需要加入table2 .try this

    UPDATE table1 INNER join table2
   ON ....
   SET col1 = IF.....