negation_elimination.result
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:7k
源码类别:
MySQL数据库
开发平台:
Visual C++
- drop table if exists t1;
- create table t1 (a int, key (a));
- insert into t1 values (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
- (10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
- explain select * from t1 where not(not(a));
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 index NULL a 5 NULL 21 Using where; Using index
- select * from t1 where not(not(a));
- a
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where not(not(not(a > 10)));
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 10 Using where; Using index
- select * from t1 where not(not(not(a > 10)));
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- explain select * from t1 where not(not(not(a < 5) and not(a > 10)));
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 5 Using where; Using index
- select * from t1 where not(not(not(a < 5) and not(a > 10)));
- a
- 5
- 6
- 7
- 8
- 9
- 10
- explain select * from t1 where not(a = 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 19 Using where; Using index
- select * from t1 where not(a = 10);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where not(a != 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
- select * from t1 where not(a != 1);
- a
- 1
- explain select * from t1 where not(a < 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 11 Using where; Using index
- select * from t1 where not(a < 10);
- a
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where not(a >= 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 9 Using where; Using index
- select * from t1 where not(a >= 10);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- explain select * from t1 where not(a > 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 10 Using where; Using index
- select * from t1 where not(a > 10);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- explain select * from t1 where not(a <= 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 10 Using where; Using index
- select * from t1 where not(a <= 10);
- a
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where not(a is null);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 20 Using where; Using index
- select * from t1 where not(a is null);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where not(a is not null);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
- select * from t1 where not(a is not null);
- a
- NULL
- explain select * from t1 where not(a < 5 or a > 15);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 10 Using where; Using index
- select * from t1 where not(a < 5 or a > 15);
- a
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- explain select * from t1 where not(a < 15 and a > 5);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 12 Using where; Using index
- select * from t1 where not(a < 15 and a > 5);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where a = 2 or not(a < 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 12 Using where; Using index
- select * from t1 where a = 2 or not(a < 10);
- a
- 2
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where a > 5 and not(a > 10);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 4 Using where; Using index
- select * from t1 where a > 5 and not(a > 10);
- a
- 6
- 7
- 8
- 9
- 10
- explain select * from t1 where a > 5 xor a < 10;
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 index NULL a 5 NULL 21 Using where; Using index
- select * from t1 where a > 5 xor a < 10;
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where a = 2 or not(a < 5 or a > 15);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 11 Using where; Using index
- select * from t1 where a = 2 or not(a < 5 or a > 15);
- a
- 2
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- explain select * from t1 where a = 7 or not(a < 15 and a > 5);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 13 Using where; Using index
- select * from t1 where a = 7 or not(a < 15 and a > 5);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 7
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where NULL or not(a < 15 and a > 5);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 12 Using where; Using index
- select * from t1 where NULL or not(a < 15 and a > 5);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where not(NULL and a > 5);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 6 Using where; Using index
- select * from t1 where not(NULL and a > 5);
- a
- 0
- 1
- 2
- 3
- 4
- 5
- explain select * from t1 where not(NULL or a);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
- select * from t1 where not(NULL or a);
- a
- explain select * from t1 where not(NULL and a);
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 index NULL a 5 NULL 21 Using where; Using index
- select * from t1 where not(NULL and a);
- a
- 0
- explain select * from t1 where not((a < 5 or a < 10) and (not(a > 16) or a > 17));
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 11 Using where; Using index
- select * from t1 where not((a < 5 or a < 10) and (not(a > 16) or a > 17));
- a
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where not((a < 5 and a < 10) and (not(a > 16) or a > 17));
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 15 Using where; Using index
- select * from t1 where not((a < 5 and a < 10) and (not(a > 16) or a > 17));
- a
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- explain select * from t1 where ((a between 5 and 15) and (not(a like 10)));
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 range a a 5 NULL 10 Using where; Using index
- select * from t1 where ((a between 5 and 15) and (not(a like 10)));
- a
- 5
- 6
- 7
- 8
- 9
- 11
- 12
- 13
- 14
- 15
- delete from t1 where a > 3;
- select a, not(not(a)) from t1;
- a not(not(a))
- NULL NULL
- 0 0
- 1 1
- 2 1
- 3 1
- explain extended select a, not(not(a)), not(a <= 2 and not(a)), not(a not like "1"), not (a not in (1,2)), not(a != 2) from t1 where not(not(a)) having not(not(a));
- id select_type table type possible_keys key key_len ref rows Extra
- 1 SIMPLE t1 index NULL a 5 NULL 5 Using where; Using index
- Warnings:
- Note 1003 select test.t1.a AS `a`,(test.t1.a <> 0) AS `not(not(a))`,((test.t1.a > 2) or test.t1.a) AS `not(a <= 2 and not(a))`,(test.t1.a like _latin1'1') AS `not(a not like "1")`,(test.t1.a in (1,2)) AS `not (a not in (1,2))`,(test.t1.a = 2) AS `not(a != 2)` from test.t1 where test.t1.a having test.t1.a
- drop table t1;