问题:
表中,有一个日期字段WorkDate(Date YYYY-MM-DD格式),现在我把它建成了索引,在检索条件时,WorkDate='YYYY-MM-DD' 时,用EXPLAIN分析,能看到使用了索引,但是当我想按月查询时,
写成 WorkDate like 'YYYY-MM%'
或者 SUBSTR(WorkDate,1,7) = 'YYYY-MM'
或者 DATE_FORMAT(WorkDate,'%Y%m') = 'YYYYMM'
用EXPLAIN分析的结果是都没有使用索引。。
现在我想实现按月查询也能使用上索引该怎么办呀。。高手指点!!
解决方案一:
可以试下强制走索引。
SELECT * FROM table USE INDEX(index_name) WHERE ...
具体资料可以网上查查
解决方法二:
索引字段操作符左边用函数后不走索引,要走索引可以 WorkDate >='2012-01-01' and WorkDate <'2012-02-01'
参考地址:IT虾米网