2015-03-31 51 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'