如下:
select a.id,a.code,a.name
from dat_student a
left join dat_class b on a.id = b.stuId
where a.delflag = 1 and a.status = 1;
假设:
a.id 为: int(11)
b.stuId 为:varchar(12)
此时索引失效,需要将两个字段修改为一致的数据类型,修改后:
select a.id,a.code,a.name
from dat_student a
left join dat_class b on CAST(a.id as CHAR) = b.stuId
where a.delflag = 1 and a.status = 1;
当 dat_student 表中的字符编辑为utf8mb4,而 dat_class 为utf8时,需要将class中的 stuId字段也设置为:
stuId
varchar(12) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT ‘学生id’
,否则索引同样会失效。