0
对不起,转发,但这是一个问题,我在一个月前得到了大部分答案。但仍然没有完全按照我想要的方式工作。MYSQL日期格式化使用组concat
有一个日期字段,我正在脱离我的数据库以下;
SELECT event,event_name,
GROUP_CONCAT(DATE_FORMAT(ed.date,'%b %e') ORDER BY ed.date SEPARATOR ',') as date2
FROM events ev
LEFT JOIN event_dates ed ON ev.eid=ed.eid
WHERE ev.yr='2013'
GROUP BY ev.eid
这产生的这个日期列表占用了很多空间。
5月16日,5月23日,5月30日,6月6日,6月20日
我希望它看起来像
月16,23,30,君6,20
这里是我根据上次的输入尝试了查询。但它不起作用,因为子查询似乎不知道事件ID。猜测我可能需要将其转换为连接?
SELECT DISTINCT ev.event_id,
GROUP_CONCAT(DISTINCT DATE_FORMAT(race_date,'%a') ORDER BY race_date
SEPARATOR ', ') as date1,
(SELECT GROUP_CONCAT(dm) FROM
(SELECT CONCAT(
MONTHNAME(race_date),
' ',
GROUP_CONCAT(DAY(race_date) ORDER BY race_date)
) as dm
FROM event_dates ed1 WHERE ed1.event_id=ev.event_id
GROUP BY MONTH(race_date))as t) as date2
FROM events ev
JOIN event_dates ed ON ev.event_id = ed.event_id AND ev.race_year = ed.race_year
GROUP BY event_id
这并没有工作,它抑制一个月有相同月份的下列事件。 – davewhirlwind 2013-02-22 18:44:46
@davewhirlwind - 只需将事件添加到prevMonth就像这样:http://sqlfiddle.com/#!2/9a4b4/3 – sgeddes 2013-02-22 18:53:17
@davewhirlwind - 我已经更新了实际使用ev.eid而不是event_name的答案 - - 祝你好运! – sgeddes 2013-02-22 18:54:41