2013-11-01 42 views
1

我想根据mysql表中的两个字段选择一个记录两次。按照created_at和updated_at的顺序选择记录两次

例如我的表有下列数据:

name, created_at, updated_at 
"Baran", "2013-09-10 23:56:56", "2013-10-10 23:00:00" 

我想降序排列的结果集:

name,date 
Baran,"2013-10-10 23:00:00" 
Baran,"2013-09-10 23:56:56" 

是有可能与否,如果是的话,请指点我如何能实现这个?

+2

你不应该希望出现这种情况。在应用层上进行两次查询或处理结果集两次。 – marekful

+0

可以请你给我建议我应该怎么做应用层。 – Baran

回答

1
(SELECT name, created_at as [date] FROM mytable) 
    UNION all 
(SELECT name, updated_at as [date] FROM mytable) 
    ORDER BY name, [date] desc; 
0

您可以选择您的记录像往常一样在Ruby中创建了“重复”:

User.all.flat_map { |user| 
    [ 
    {name: user.name, date: user.created_at}, 
    {name: user.name, date: user.updated_at} 
    ] 
} 
#=> [{:name=>"Baran", :date=>"2013-09-10 23:56:56"}, {:name=>"Baran", :date=>"2013-10-10 23:00:00"}] 
相关问题