这是我的基本日期时间结构:
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
我想得到的结果day(date_time)
at '2010-10'
和user_id = '1';
Mysql 是:
SELECT * FROM datetime WHERE user_id = 1 AND DATE_FORMAT(date,'%Y-%m') = '2010-10'
but the EXPLAIN
代码显示:
SIMPLE datetime ALL (NULL) (NULL) (NULL) (NULL) 5 Using where
所以,这行代码似乎不是很有效。我怎样才能构建表格以使我的搜索更有效?
非常感谢!!
在 WHERE 子句中的列上使用函数会阻碍该列上索引的有效使用。试试这个:
SELECT *
FROM `datetime`
WHERE user_id = 1
AND `date` >= '2010-10-01' AND `date` < '2010-11-01'
添加索引(user_id, date)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)