取出所有最近发生的事件,相同的事件只取最新的一条。
也就是说,这里面name为a的这条数据,要取最后一条的a,因为最后一条的a的time距离当前最近。
mysql语句:
SELECT *
FROM `event` as a
WHERE time = (
SELECT max(time) FROM event as b
WHERE b.`name` = a.`name`
GROUP BY `name`
);
返回结果:
参考资料:
https://segmentfault.com/q/1010000011383702
第二种实现方式:
SELECT name,substring_index(GROUP_CONCAT(num ORDER BY time desc),',',1) as num
from risk_events
inner
JOIN event_define on event_define.`code` = risk_events.event_code
GROUP BY `event_code`;
TODO:原理待分析