从mysql中选择YEAR(分页)

时间:2012-03-31 17:55:02

标签: php mysql

我有一个mysql表,其记录可以追溯到2006年到现在(以及正在进行中),所有记录都带有日期时间戳记

最简单/最简单的方法是提取所有YEARS并为每年(动态)制作分页链接? 像这样:2006 2007 2008 2009 2010 2011 2012

这不是太笨拙而且为这个简单的任务使用了太多的资源吗?:

@mysql_query("SELECT YEAR(date) AS yearonly FROM table GROUP BY yearonly");

4 个答案:

答案 0 :(得分:3)

我认为你的解决方案没问题。

使用select distinct是另一种可能性

SELECT DISTINCT YEAR(date) AS yearonly FROM table

答案 1 :(得分:1)

更简单的方法可以是:

您可以使用group_concat()一次性获取所有内容

SELECT group_concat(YEAR(date),SEPARATOR '') AS years FROM table GROUP BY YEAR(date)

OR

SELECT distinct YEAR(date,4) AS yearonly FROM table

OR

SELECT distinct  LEFT(date,4) AS yearonly FROM table

答案 2 :(得分:1)

这是正确的答案,不要忘记每年订购 为获得最佳性能,如果您有大型数据集,请在日期列上创建索引。

答案 3 :(得分:1)

为了提高效率而不是其他建议,并且无缘无故地避免在百万行表上进行完整的表扫描:

创建一个包含2006年至2050年(或任何您想要的)年份的表格。也许叫它years?然后:

select *
  from `years`
 where `year` <= year(curdate())