qin*_*ang 9 mysql search datetime
这是我的基本日期时间结构:
primary key(datetime) key
auot_id date_time user_id
1 2010-10-01 20:32:34 1
2 2010-10-02 20:32:34 1
3 2010-11-03 20:32:34 2
4 2010-10-04 20:32:34 1
5 2010-11-05 20:32:34 1
Run Code Online (Sandbox Code Playgroud)
我想获得day(date_time)at 的结果,'2010-10'而user_id = '1';
My SQL是:
SELECT * FROM datetime WHERE user_id = 1 AND DATE_FORMAT(date,'%Y-%m') = '2010-10'
Run Code Online (Sandbox Code Playgroud)
但EXPLAIN代码显示:
SIMPLE datetime ALL (NULL) (NULL) (NULL) (NULL) 5 Using where
Run Code Online (Sandbox Code Playgroud)
所以,这行代码似乎不是非常有效.我怎么能构建表来使我的搜索更有效?
非常感谢你!!
Mar*_*ers 13
在WHERE子句中使用列上的函数可以防止在该列上有效使用索引.试试这个:
SELECT *
FROM `datetime`
WHERE user_id = 1
AND `date` >= '2010-10-01' AND `date` < '2010-11-01'
Run Code Online (Sandbox Code Playgroud)
添加索引(user_id, date).
| 归档时间: |
|
| 查看次数: |
7787 次 |
| 最近记录: |