我想做类似以下的事情
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)
答案 0 :(得分:4)
这取决于“其他复杂语句”是否是“相关”子查询。“相关”子查询是结果取决于“外部”查询中行的值的子查询。
因此,如果复杂语句对外部查询表中的列有引用,那么它是一个“相关”子查询,答案是肯定的,它将在foreach行进行计算。否则,否。