📄 negation_elimination.result
字号:
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 Extra1 SIMPLE t1 index NULL a 5 NULL 21 Using where; Using indexselect * from t1 where not(not(a));a12345678910111213141516171819explain select * from t1 where not(not(not(a > 10)));id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 10 Using where; Using indexselect * from t1 where not(not(not(a > 10)));a012345678910explain 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 Extra1 SIMPLE t1 range a a 5 NULL 5 Using where; Using indexselect * from t1 where not(not(not(a < 5) and not(a > 10)));a5678910explain select * from t1 where not(a = 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 19 Using where; Using indexselect * from t1 where not(a = 10);a0123456789111213141516171819explain select * from t1 where not(a != 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 ref a a 5 const 1 Using where; Using indexselect * from t1 where not(a != 1);a1explain select * from t1 where not(a < 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 11 Using where; Using indexselect * from t1 where not(a < 10);a10111213141516171819explain select * from t1 where not(a >= 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 9 Using where; Using indexselect * from t1 where not(a >= 10);a0123456789explain select * from t1 where not(a > 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 10 Using where; Using indexselect * from t1 where not(a > 10);a012345678910explain select * from t1 where not(a <= 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 10 Using where; Using indexselect * from t1 where not(a <= 10);a111213141516171819explain select * from t1 where not(a is null);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 20 Using where; Using indexselect * from t1 where not(a is null);a012345678910111213141516171819explain select * from t1 where not(a is not null);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 ref a a 5 const 1 Using where; Using indexselect * from t1 where not(a is not null);aNULLexplain select * from t1 where not(a < 5 or a > 15);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 10 Using where; Using indexselect * from t1 where not(a < 5 or a > 15);a56789101112131415explain select * from t1 where not(a < 15 and a > 5);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 12 Using where; Using indexselect * from t1 where not(a < 15 and a > 5);a0123451516171819explain select * from t1 where a = 2 or not(a < 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 12 Using where; Using indexselect * from t1 where a = 2 or not(a < 10);a210111213141516171819explain select * from t1 where a > 5 and not(a > 10);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 4 Using where; Using indexselect * from t1 where a > 5 and not(a > 10);a678910explain select * from t1 where a > 5 xor a < 10;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 index NULL a 5 NULL 21 Using where; Using indexselect * from t1 where a > 5 xor a < 10;a01234510111213141516171819explain 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 Extra1 SIMPLE t1 range a a 5 NULL 11 Using where; Using indexselect * from t1 where a = 2 or not(a < 5 or a > 15);a256789101112131415explain 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 Extra1 SIMPLE t1 range a a 5 NULL 13 Using where; Using indexselect * from t1 where a = 7 or not(a < 15 and a > 5);a01234571516171819explain select * from t1 where NULL or not(a < 15 and a > 5);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 12 Using where; Using indexselect * from t1 where NULL or not(a < 15 and a > 5);a0123451516171819explain select * from t1 where not(NULL and a > 5);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 5 NULL 6 Using where; Using indexselect * from t1 where not(NULL and a > 5);a012345explain select * from t1 where not(NULL or a);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHEREselect * from t1 where not(NULL or a);aexplain select * from t1 where not(NULL and a);id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 index NULL a 5 NULL 21 Using where; Using indexselect * from t1 where not(NULL and a);a0explain 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 Extra1 SIMPLE t1 range a a 5 NULL 11 Using where; Using indexselect * from t1 where not((a < 5 or a < 10) and (not(a > 16) or a > 17));a10111213141516171819explain 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 Extra1 SIMPLE t1 range a a 5 NULL 15 Using where; Using indexselect * from t1 where not((a < 5 and a < 10) and (not(a > 16) or a > 17));a5678910111213141516171819explain 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 Extra1 SIMPLE t1 range a a 5 NULL 10 Using where; Using indexselect * from t1 where ((a between 5 and 15) and (not(a like 10)));a567891112131415delete from t1 where a > 3;select a, not(not(a)) from t1;a not(not(a))NULL NULL0 01 12 13 1explain 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 Extra1 SIMPLE t1 index NULL a 5 NULL 5 Using where; Using indexWarnings: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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -