drop table if exists t1; create table t1 ( pk int primary key, key1 int, key2 int, filler char(200), filler2 char(200), index(key1), index(key2) ) engine=innodb; select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 ); pk key1 key2 filler filler2 2 2 2 filler-data filler-data-2 3 3 3 filler-data filler-data-2 9 9 9 filler-data filler-data-2 10 10 10 filler-data filler-data-2 4 4 4 filler-data filler-data-2 5 5 5 filler-data filler-data-2 6 6 6 filler-data filler-data-2 7 7 7 filler-data filler-data-2 8 8 8 filler-data filler-data-2 set @maxv=1000; select * from t1 where (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10) or key1=18 or key1=60; pk key1 key2 filler filler2 18 18 18 filler-data filler-data-2 60 60 60 filler-data filler-data-2 1 1 1 filler-data filler-data-2 2 2 2 filler-data filler-data-2 3 3 3 filler-data filler-data-2 4 4 4 filler-data filler-data-2 11 11 11 filler-data filler-data-2 12 12 12 filler-data filler-data-2 13 13 13 filler-data filler-data-2 14 14 14 filler-data filler-data-2 50 50 50 filler-data filler-data-2 51 51 51 filler-data filler-data-2 52 52 52 filler-data filler-data-2 53 53 53 filler-data filler-data-2 54 54 54 filler-data filler-data-2 991 991 991 filler-data filler-data-2 992 992 992 filler-data filler-data-2 993 993 993 filler-data filler-data-2 994 994 994 filler-data filler-data-2 995 995 995 filler-data filler-data-2 996 996 996 filler-data filler-data-2 997 997 997 filler-data filler-data-2 998 998 998 filler-data filler-data-2 999 999 999 filler-data filler-data-2 1000 1000 1000 filler-data filler-data-2 select * from t1 where (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10) or key1 < 3 or key1 > @maxv-11; pk key1 key2 filler filler2 990 990 990 filler-data filler-data-2 1 1 1 filler-data filler-data-2 2 2 2 filler-data filler-data-2 3 3 3 filler-data filler-data-2 4 4 4 filler-data filler-data-2 11 11 11 filler-data filler-data-2 12 12 12 filler-data filler-data-2 13 13 13 filler-data filler-data-2 14 14 14 filler-data filler-data-2 50 50 50 filler-data filler-data-2 51 51 51 filler-data filler-data-2 52 52 52 filler-data filler-data-2 53 53 53 filler-data filler-data-2 54 54 54 filler-data filler-data-2 991 991 991 filler-data filler-data-2 992 992 992 filler-data filler-data-2 993 993 993 filler-data filler-data-2 994 994 994 filler-data filler-data-2 995 995 995 filler-data filler-data-2 996 996 996 filler-data filler-data-2 997 997 997 filler-data filler-data-2 998 998 998 filler-data filler-data-2 999 999 999 filler-data filler-data-2 1000 1000 1000 filler-data filler-data-2 select * from t1 where (pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10) or (key1 < 5) or (key1 > 10 and key1 < 15) or (key1 >= 50 and key1 < 55 ) or (key1 > @maxv-10); pk key1 key2 filler filler2 1 1 1 filler-data filler-data-2 2 2 2 filler-data filler-data-2 3 3 3 filler-data filler-data-2 4 4 4 filler-data filler-data-2 11 11 11 filler-data filler-data-2 12 12 12 filler-data filler-data-2 13 13 13 filler-data filler-data-2 14 14 14 filler-data filler-data-2 50 50 50 filler-data filler-data-2 51 51 51 filler-data filler-data-2 52 52 52 filler-data filler-data-2 53 53 53 filler-data filler-data-2 54 54 54 filler-data filler-data-2 991 991 991 filler-data filler-data-2 992 992 992 filler-data filler-data-2 993 993 993 filler-data filler-data-2 994 994 994 filler-data filler-data-2 995 995 995 filler-data filler-data-2 996 996 996 filler-data filler-data-2 997 997 997 filler-data filler-data-2 998 998 998 filler-data filler-data-2 999 999 999 filler-data filler-data-2 1000 1000 1000 filler-data filler-data-2 select * from t1 where (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (key1 < 5) or (key1 > @maxv-10); pk key1 key2 filler filler2 1 1 1 filler-data filler-data-2 2 2 2 filler-data filler-data-2 3 3 3 filler-data filler-data-2 4 4 4 filler-data filler-data-2 991 991 991 filler-data filler-data-2 992 992 992 filler-data filler-data-2 993 993 993 filler-data filler-data-2 994 994 994 filler-data filler-data-2 995 995 995 filler-data filler-data-2 996 996 996 filler-data filler-data-2 997 997 997 filler-data filler-data-2 998 998 998 filler-data filler-data-2 999 999 999 filler-data filler-data-2 1000 1000 1000 filler-data filler-data-2 11 11 11 filler-data filler-data-2 12 12 12 filler-data filler-data-2 13 13 13 filler-data filler-data-2 14 14 14 filler-data filler-data-2 50 50 50 filler-data filler-data-2 51 51 51 filler-data filler-data-2 52 52 52 filler-data filler-data-2 53 53 53 filler-data filler-data-2 54 54 54 filler-data filler-data-2 drop table t1;