使用IN查询时,数据为相同类型的数据是可以正常使用索引的
但是,当IN里面嵌套子查询的是,emmm神一般的消失掉了?
询问大佬之后,说是当时用select之后使用了函数内部转换,mysql是不支持函数索引的。so,问题来了应该怎么办呢?
直接与子查询进行join关联,这种写法相当于IN子查询写法,而且效率有不少的提高
EXPLAIN SELECT
a.id,
a.stu_id
FROM
jx_students_scorex a,(
SELECT
id
FROM
jx_students_examination_typex
WHERE
`name` = '18-19期末考试'
AND FIND_IN_SET(project, '0,1,2,3')
AND stu_year = '2016'
AND FIND_IN_SET(
class_id,
'0893e50c04aa4308a6696eedbb182b79,4bba27df05674480a8325de9733d0fa8'
)
) t2
WHERE
a.exam_id = t2.id
OK ,解决完毕使用索引0.006s