2014-01-11 12 views
0

有了這個SQL查詢,MySQL的DAYOFMONTH()不工作

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的輸出。

回答

2

做在一個指數友好方式

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列每次查詢數據時都會有效地進行全面掃描。

推薦閱讀:

+0

+1我喜歡你的答案更好 –

+0

謝謝@JohnConde :) – peterm

+0

幾個數據庫上'time'列使用索引的範圍查詢。所需的查找數量太多。 – Andomar