2

例如:

select * from A where 
predicate1 and 
predicate2 and 
predicate3;

如果 predicate1 返回 false,程序是否会继续评估其他谓词?干杯。

4

1 回答 1

3

优化器可能会重新排序谓词,在一般情况下,将执行所有谓词:

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               
于 2013-10-28T17:54:51.633 回答