首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法根据发布的时间获得Mysql表的最新增值

无法根据发布的时间获得Mysql表的最新增值
EN

Stack Overflow用户
提问于 2015-03-27 07:43:49
回答 2查看 41关注 0票数 0

discussion_comments组中按disc_id顺序由posted_date DESC选择*

我有如下表中的例子:

代码语言:javascript
复制
CREATE TABLE example
(
id int(11),
cname varchar(11),
posted_date date,
posted_time varchar(20)
); 

其价值如下:

代码语言:javascript
复制
INSERT INTO example
VALUES 
(1,'abc','2015-03-26','04:25 PM'),
(1,'def','2015-03-27','04:30 PM'),
(2,'ghi','2015-03-11','02:25 AM'),
(2,'jkl','2015-03-15','12:25 PM');

而且,我只想获得表中基于id & posted_time字段的最新增值。

我想要达到的结果是:

代码语言:javascript
复制
(1,'def','2015-03-27','04:30 PM')
(2,'jkl','2015-03-15','12:25 PM') 

我尝试的查询如下:

代码语言:javascript
复制
SELECT * FROM `example GROUP BY id ORDER BY posted_date DESC 

我没有得到想要的结果。我哪里出错了??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-27 07:47:46

有很多种方法,其中之一就是left join

代码语言:javascript
复制
select e1.* from example e1 
left join example e2 on e1.id = e2.id 
and e1.posted_date < e2.posted_date where e2.id is null;

Uncorrelated Sub-query

代码语言:javascript
复制
select e1.* from example e1 
join ( 
   select id,max(posted_date) as posted_date from example group by id 
)x 
on x.id = e1.id and x.posted_date = e1.posted_date ; 
票数 1
EN

Stack Overflow用户

发布于 2015-03-27 08:02:44

如果您想对desc日期+时间进行排序

代码语言:javascript
复制
select * from (select * from example order by STR_TO_DATE(CONCAT(posted_date,posted_time),'%Y-%m-%d%h:%i %p') desc) as xx group by id;

如果您想按日期对desc排序

代码语言:javascript
复制
SELECT * FROM (select * from example order by posted_date desc) as ex group by id

在处理日期操作时,将IMHO存储为时间戳更好,除非您可能有多个时间戳字段是同一个表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29295624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档