一个sql的优化问题
两个sql,斜体加粗部分有些许差别,不知道是什么原因影响了子查询走索引?
一:
explain
SELECT
h.phone_num,
h.state
FROM
hunan_unicom_phone_state_201810 h
WHERE
h.create_time > ‘2018-10-18’
AND h.create_time < ‘2018-10-19’
and h.phone_num IN (
SELECT
user_id AS phone_num
FROM
unicom_business_order
WHERE
1 = 1
AND update_type = ‘1’
AND left(create_time,7) <= '2018-10’
GROUP BY
user_id
ORDER BY
user_id,
create_time DESC
)
GROUP BY
h.phone_num
二:
EXPLAIN
SELECT
h.phone_num,
h.state
FROM
hunan_unicom_phone_state_201810 h
WHERE
h.create_time > ‘2018-10-18’
AND h.create_time < ‘2018-10-19’
AND h.phone_num IN (
SELECT
user_id AS phone_num
FROM
unicom_business_order
WHERE
1 = 1
AND update_type = ‘1’
AND create_time <= '2018-11’
GROUP BY
user_id
ORDER BY
user_id,
create_time DESC
)
GROUP BY
h.phone_num
请问
为什么第二个sql子查询不走索引?
left(create_time,7) <= '2018-10’和 AND create_time <= '2018-11’有什么区别?
两种写法是否都正确?