带有语句的MySQL Update列

时间:2009-09-14 18:06:14

标签: sql mysql

我想做类似以下的事情

UPDATE table SET column = other_column IN(complex_statement)

我的问题是这个wold是否会导致对每一行的复杂语句进行评估,这显然不会对性能有很好的效果。

替代方案是

UPDATE table SET column = 0;
UPDATE table SET column = 1 WHERE other_column IN(complex_statement)

1 个答案:

答案 0 :(得分:4)

这取决于“其他复杂语句”是否是“相关”子查询。“相关”子查询是结果取决于“外部”查询中行的值的子查询。

因此,如果复杂语句对外部查询表中的列有引用,那么它是一个“相关”子查询,答案是肯定的,它将在foreach行进行计算。否则,否。