我有一个带有日期字段的表,我需要找出哪些年份有记录,并只输出年份的列表,例如(201120122013 ),我想象的唯一方法是获取所有行,然后在php循环中进行分析。
有没有人知道用纯SQL实现这一目标的方法,或者我是否需要使用php函数来分析数据?
发布于 2013-11-11 13:41:13
发布于 2013-11-11 13:40:50
试着做:
SELECT YEAR(dateColumn)
FROM yourTable
GROUP BY YEAR
发布于 2013-11-11 13:43:16
你说你想要一个像2011,2012,2013.这样的列表下面的SQL Fiddle演示了如何在一个字段中实现这样的目标:
SELECT CONCAT('[', GROUP_CONCAT(MQ.MyYear), ']') AS YearsList
FROM
(
SELECT DISTINCT YEAR(MyDateField) AS MyYear
FROM MyTable
) AS MQ
在上面的示例中,我使用一个子查询来获取表中找到的所有唯一年份。然后,我使用GROUP_CONCAT
将它们组合在一起,每年将它们与,
分离开来。然后,我使用CONCAT
在字符串的前端和末尾添加括号。
https://stackoverflow.com/questions/19916473
复制相似问题