set tidb_cost_model_version=1; drop table if exists t1; drop table if exists t2; create table t1(a bigint, b bigint); create table t2(a bigint, b bigint); set session tidb_hashagg_partial_concurrency = 1; set session tidb_hashagg_final_concurrency = 1; explain format = 'brief' select * from t1 where t1.a in (select t1.b + t2.b from t2); drop table if exists t; create table t(a int primary key, b int, c int, d int, index idx(b,c,d)); insert into t values(1,1,1,1),(2,2,2,2),(3,2,2,2),(4,2,2,2),(5,2,2,2); analyze table t; explain format = 'brief' select t.c in (select count(*) from t s use index(idx), t t1 where s.b = 1 and s.c = 1 and s.d = t.a and s.a = t1.a) from t; drop table if exists t; create table t(a int, b int, c int); explain format = 'brief' select a from t t1 where t1.a = (select max(t2.a) from t t2 where t1.b=t2.b and t1.c=t2.b); drop table if exists t1, t2; create table t1(a int(11)); create table t2(a decimal(40,20) unsigned, b decimal(40,20)); select count(*) as x from t1 group by a having x not in (select a from t2 where x = t2.b); drop table if exists stu; drop table if exists exam; create table stu(id int, name varchar(100)); insert into stu values(1, null); create table exam(stu_id int, course varchar(100), grade int); insert into exam values(1, 'math', 100); set names utf8 collate utf8_general_ci; explain format = 'brief' select * from stu where stu.name not in (select 'guo' from exam where exam.stu_id = stu.id); select * from stu where stu.name not in (select 'guo' from exam where exam.stu_id = stu.id); set names utf8mb4; explain format = 'brief' select * from stu where stu.name not in (select 'guo' from exam where exam.stu_id = stu.id); select * from stu where stu.name not in (select 'guo' from exam where exam.stu_id = stu.id);