表: id title  timedata
        内容   加入时间怎么根据存储的时间来分类,比如2012年 8月 5月.2011年5月 有存储数据,怎么让它显示结果为
(也就是说按照文章的写入时间按照年月分类,2012年在哪一月有储存信息,就显示)
<ul>
<li>
<li>2012</li>
   <ul>
     
      <li> 8</li>
      <li>5</li>
     
   </ul>
</li>
<li>
   <a>2011</a>
    <ul>
    <li>5</li>
    </ul>
</li>
</ul>
这样的分类循环输出SQL怎么写?

解决方案 »

  1.   

    说明一下 timedata 字段存储的格式
    最好给几个值
      

  2.   


    id title         timedata
    1  2012年5月内容   1347903912
    2  2012年9月内容   1349361341
    3  2011年5月内容   1320158641
      

  3.   

    先输出数据,然后你在php循环里自己判断。不要考虑用sql解决业务逻辑问题
      

  4.   

    select distinct year(from_unixtime(timedata)), month( from_unixtime(timedata))
    from yourtable
      

  5.   

    用group by year(your date), month(year date)
      

  6.   

    我的sql功底不行,所以如果是我的话应该是把时间值取出来,然后使用Gmdate函数格式化日期,重新规划数组,最后显示
    这个方法应该是比较笨的.
      

  7.   


    这样查询结果为
    from_unixtime(timedata) from_unixtime(timedata)
    2011                       8
    2012                       5
    2012                       9
    怎么写代码让他显示2012 5 9
    2011 8
      

  8.   

    嗯, 一般到这个程度就交给php了如果非要用sql的话:select distinct year(from_unixtime(timedata)) y, 
       group_concat(distinct month( from_unixtime(timedata)) order by month( from_unixtime(timedata)) separator ' ') m
    from yourtable
    group by y
    ;