-3

表篇

id - content - ins_dt
1 - lorem ipsum1 - 2013-01-09
2 - lorem ipsum2 - 2013-02-08
3 - lorem ipsum3 - 2012-11-03
4 - lorem ipsum4 - 2011-01-20
5 - lorem ipsum5 - 2011-12-13
6 - lorem ipsum6 - 2010-05-12

有查询

SELECT ins_dt FROM articles ORDER BY ins_dt DESC;

我明白了:(http://sqlfiddle.com/#!2/fc9ea6/5

"2013 2013 2012 2011 2011 2010" 

但我需要这个:

"2013 2012 2011 2010"
4

4 回答 4

2

无论您得到什么值,都将它们存储在数组中

然后$finaldata = array_unique($yourarray);

于 2013-09-01T10:35:37.817 回答
1

您可以使用简单的 SQL 查询

SELECT GROUP_CONCAT(DISTINCT YEAR(ins_dt)) AS `year` 
FROM articles 
ORDER BY ins_dt DESC;

这是示例和演示:http ://sqlfiddle.com/#!2/fc9ea6/3

于 2013-09-01T10:41:03.173 回答
0

尝试排序http://php.net/manual/en/function.sort.php

sort($myarr['ins_dt'], SORT_NUMERIC); 
 print_r($myarr);

一点点搜索工作可以让你找到像这样的链接 http://php.net/manual/en/array.sorting.php

于 2013-09-01T10:35:38.757 回答
0

由于您在数组中拥有数据,因此您可以轻松地在代码中使用Array unique,这将为您提供一个仅包含唯一值的数组。

或者,您可以更改您的 SQL 以仅从表本身中提取您需要的数据,如下所示:

select distinct year from (select date_format(ins_dt, '%Y') from tableArticles) myData)
于 2013-09-01T10:36:33.043 回答