CREATE TABLE t1(id INT); INSERT INTO t1 VALUES (1),(2),(3),(4); INSERT INTO t1 SELECT a.id FROM t1 a,t1 b,t1 c,t1 d; SET @orig_debug=@@debug; SET GLOBAL debug_dbug="d,subselect_exec_fail"; SELECT SUM(EXISTS(SELECT RAND() FROM t1)) FROM t1; SUM(EXISTS(SELECT RAND() FROM t1)) 0 SELECT REVERSE(EXISTS(SELECT RAND() FROM t1)); REVERSE(EXISTS(SELECT RAND() FROM t1)) 0 SET GLOBAL debug_dbug=@orig_debug; DROP TABLE t1; create table t1 (i int); insert into t1 values (1),(2); select * from t1 where (i < 200 or i = 300) and i in (select i from t1); i 1 2 drop table t1;