对于这个SQL查询,
SELECT SUM( Views )
FROM `pages_analytics`
WHERE (
ID
IN ( 60, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175 )
AND TIME = DAYOFMONTH( '2013-12-07' )
)我拿不到一笔钱。TIME表是一个时间戳,每一行都有几秒不同,但有同一天。我做错了什么?我目前正在获得null的输出。
发布于 2014-01-11 21:40:37
用一种index-friendly的方式做
SELECT SUM(views) total_views
FROM pages_analytics
WHERE id IN (60, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175)
AND time >= '2013-12-07'
AND time < '2013-12-08'注意:使用DAYOFMONTH()或任何其他函数的会防止 MySQL可能使用time列上的任何索引,从而有效地导致每次查询数据时都会进行全面扫描。
建议阅读:
https://stackoverflow.com/questions/21068194
复制相似问题