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 range a a 5 NULL 20 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 11 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) andnot(a > 10)));
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(not(not(a < 5) andnot(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 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 10 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 10 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 11 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 9 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 < 5or 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 not(a < 5or a > 15);
a 5 6 7 8 9 10 11 12 13 14 15
explain select * from t1 where not(a < 15and a > 5);
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 < 15and a > 5);
a 0 1 2 3 4 5 15 16 17 18 19
explain select * from t1 where a = 2ornot(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 a = 2ornot(a < 10);
a 2 10 11 12 13 14 15 16 17 18 19
explain select * from t1 where a > 5andnot(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 a > 5andnot(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 = 2ornot(a < 5or a > 15);
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 = 2ornot(a < 5or a > 15);
a 2 5 6 7 8 9 10 11 12 13 14 15
explain select * from t1 where a = 7ornot(a < 15and 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 a = 7ornot(a < 15and a > 5);
a 0 1 2 3 4 5 7 15 16 17 18 19
explain select * from t1 where NULL ornot(a < 15and a > 5);
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 NULL ornot(a < 15and 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 ref a a 5 const 1 Using index
select * from t1 where not(NULL and a);
a 0
explain select * from t1 where not((a < 5or 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 10 Using where; Using index
select * from t1 where not((a < 5or 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 < 5and 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 < 5and 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 5and15) 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 11 Using where; Using index
select * from t1 where ((a between 5and15) and (not(a like 10)));
a 5 6 7 8 9 11 12 13 14 15
# XOR (Note: XOR is negated by negating one of the operands)
# Should return6,7
SELECT * FROM t1 WHERE ((a > 5) XOR (a > 7));
a 6 7
# Should return0..5,8..19
SELECT * FROM t1 WHERE ((NOT (a > 5)) XOR (a > 7));
a 0 1 2 3 4 5 8 9 10 11 12 13 14 15 16 17 18 19
SELECT * FROM t1 WHERE ((a > 5) XOR (NOT (a > 7)));
a 0 1 2 3 4 5 8 9 10 11 12 13 14 15 16 17 18 19
SELECT * FROM t1 WHERE NOT ((a > 5) XOR (a > 7));
a 0 1 2 3 4 5 8 9 10 11 12 13 14 15 16 17 18 19
# Should return6,7
SELECT * FROM t1 WHERE NOT ((NOT (a > 5)) XOR (a > 7));
a 6 7
SELECT * FROM t1 WHERE NOT ((a > 5) XOR (NOT (a > 7)));
a 6 7
# Should return0..5,8..19
SELECT * FROM t1 WHERE NOT ((NOT (a > 5)) XOR (NOT (a > 7)));
a 0 1 2 3 4 5 8 9 10 11 12 13 14 15 16 17 18 19
# Should have empty result
SELECT * FROM t1 WHERE (NULL XOR (a > 7));
a
SELECT * FROM t1 WHERE NOT (NULL XOR (a > 7));
a
# Should be simplified to "...WHERE (a XOR a)
EXPLAIN EXTENDED SELECT * FROM t1 WHERE NOT ((NOT a) XOR (a));
id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 index NULL a 5 NULL 21100.00 Using where; Using index
Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` xor `test`.`t1`.`a`
# Should be simplified to "...WHERE (a XOR a)
EXPLAIN EXTENDED SELECT * FROM t1 WHERE NOT (a XOR (NOT a));
id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 index NULL a 5 NULL 21100.00 Using where; Using index
Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` xor `test`.`t1`.`a`
# End XOR
delete from t1 where a > 3;
select a, not(not(a)) from t1;
a not(not(a))
NULL NULL 00 11 21 31
explain extended select a, not(not(a)), not(a <= 2andnot(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 filtered Extra 1 SIMPLE t1 range a a 5 NULL 4100.00 Using where; Using index
Warnings:
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`a` <> 0 AS `not(not(a))`,`test`.`t1`.`a` > 2or `test`.`t1`.`a` <> 0 AS `not(a <= 2andnot(a))`,`test`.`t1`.`a` like '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` is true having `test`.`t1`.`a` is true
drop table t1;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.