提问者:小点点

获取当前年份的年份


SELECT DISTINCT(toda) toda, count(DISTINCT toda) as numusers 
FROM tbl_complains WHERE YEAR(dates)= YEAR(NOW()) 
GROUP BY toda ORDER BY toda

我试图只得到今年的数据,但我的“where子句”似乎有问题。但当我在where子句中输入特定年份时,它就起作用了。除了where子句之外,所有的东西都在工作。

我希望你们能帮我。


共1个答案

匿名用户

在一个领域的什么地方计算一些东西是一个非常糟糕的主意。MySQL必须在每一行上计算该值,以查看是否使用该行作为结果。这提供了一个完整的表扫描,并且可能会很慢

更好地使用

SELECT DISTINCT(toda) toda, count(DISTINCT toda) as numusers 
FROM tbl_complains 
WHERE dates BETWEEN DATE_FORMAT(NOW() ,'%Y-01-01') 
                AND DATE_FORMAT(NOW() ,'%Y-12-31'))
GROUP BY toda ORDER BY toda;

所以MySQL只能计算一次日期,如果有索引,也可以使用索引