create table t1(id int, a int); insert into t1 values(1,1),(2,2),(3,null); analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK explain select id, a=1 is false from t1 ; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,((`test`.`t1`.`a` = 1) is false) AS `a=1 is false` from `test`.`t1` select id, a=1 is false from t1 ; id a=1 is false 1 0 2 1 3 0 explain select id, not (a=1 is true) from t1 ; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,((`test`.`t1`.`a` = 1) is not true) AS `not (a=1 is true)` from `test`.`t1` select id, not (a=1 is true) from t1 ; id not (a=1 is true) 1 0 2 1 3 1 explain select id, (not a=1) is true from t1 ; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,((`test`.`t1`.`a` <> 1) is true) AS `(not a=1) is true` from `test`.`t1` select id, (not a=1) is true from t1 ; id (not a=1) is true 1 0 2 1 3 0 explain select id, not (a=1 is false) from t1 ; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,((`test`.`t1`.`a` = 1) is not false) AS `not (a=1 is false)` from `test`.`t1` select id, not (a=1 is false) from t1 ; id not (a=1 is false) 1 1 2 0 3 1 explain select id, not (a=1 is unknown) from t1 ; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,((`test`.`t1`.`a` = 1) is not null) AS `not (a=1 is unknown)` from `test`.`t1` select id, not (a=1 is unknown) from t1 ; id not (a=1 is unknown) 1 1 2 1 3 0 explain select id, ((not a=1) is true) is false from t1 ; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,((`test`.`t1`.`a` <> 1) is not true) AS `((not a=1) is true) is false` from `test`.`t1` select id, ((not a=1) is true) is false from t1 ; id ((not a=1) is true) is false 1 1 2 0 3 1 explain select id, 3 + (not (a=1 is false)) from t1 ; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,(3 + ((`test`.`t1`.`a` = 1) is not false)) AS `3 + (not (a=1 is false))` from `test`.`t1` select id, 3 + (not (a=1 is false)) from t1 ; id 3 + (not (a=1 is false)) 1 4 2 3 3 4 drop table t1;