例如:
select * from A where
predicate1 and
predicate2 and
predicate3;
如果 predicate1 返回 false,程序是否会继续评估其他谓词?干杯。
优化器可能会重新排序谓词,在一般情况下,将执行所有谓词:
sqlite> .explain on sqlite> 解释选择 1,其中 11=22 和 33=44; addr 操作码 p1 p2 p3 p4 p5 注释 ---- ------------- ---- ---- ---- ------------- -- ------ -------- 0 轨迹 0 0 0 00 1 整数 11 3 0 00 2 整数 22 4 0 00 3 等式 4 2 3 72 4 整数 33 3 0 00 5 整数 44 5 0 00 6 等式 5 4 3 72 7 和 4 2 1 00 8 如果不是 1 12 1 00 9 转到 0 13 0 00 10 整数 1 6 0 00 11 结果行 6 1 0 00 12 暂停 0 0 0 00 13 转到 0 10 0 00