2015-03-31 54 views
0
SELECT 
COUNT(keywords) AS count_keywords 
FROM (
    SELECT * FROM keyword_searches GROUP BY keywords, ip 
) tmp_table 
WHERE created_at BETWEEN '2012-03-31 00:00:00' AND '2015-03-31 23:59:59'; 

如何優化此查詢?如何優化這個沒有關鍵字和ips重複的mysql查詢?

+0

所以,你的意思是你想要得到的記錄,其中有每組'關鍵字只有一個值,ip'與給定日期的所有記錄範圍 ? – 2015-03-31 07:41:06

回答

0

首先在內部查詢中使用where條件篩選記錄,然後在外部查詢中計數keywords

SELECT 
COUNT(keywords) AS count_keywords 
FROM (
    SELECT * FROM keyword_searches WHERE created_at BETWEEN '2012-03-31 00:00:00' AND '2015-03-31 23:59:59' GROUP BY keywords, ip 
) tmp_table ; 

你的情況,你有未滿足條件BETWEEN '2012-03-31 00:00:00' AND '2015-03-31 23:59:59'