【问题标题】:how to order by other column in the group by?如何按组中的其他列排序?
【发布时间】:2013-02-17 00:56:10
【问题描述】:

我有以下文章的mysql表:

id | date
 1 | 2013-02-16 00:00:00
 2 | 2013-02-17 00:00:00 

我想得到一个逗号分隔的 id (1,2) 和最后一个日期值 (2013-02-17 00:00:00) 的列表

我使用以下查询:

SELECT GROUP_CONCAT(id),date FROM articles ORDER BY date DESC

查询选择它遇到的第一个日期值(2013-02-16 00:00:00),如何让它选择最后一个?

谢谢

【问题讨论】:

  • 我想获取最新的日期(最近的)所以应该使用 order desc

标签: php mysql sql database


【解决方案1】:
select group_concat(id), 
       max(date) as max_date
from your_table

SQLFiddle demo

【讨论】:

  • 我不想分组,因为我只想要一个逗号分隔的 id 列表,而不是单独的每一行..谢谢 :)
  • @MichaelSamuel:尝试在您的查询中添加limit 1,包括group by
  • 这只会产生1,我想要一个逗号分隔的 ids (1,2) 列表以及上一篇文章的日期
【解决方案2】:

MAX怎么样:

SELECT GROUP_CONCAT(id),MAX(date) 
FROM articles 

还有小提琴:http://sqlfiddle.com/#!2/4e957/3

【讨论】:

    【解决方案3】:

    使用这个:

    SELECT GROUP_CONCAT(id),date FROM articles ORDER BY date ASC
    

    【讨论】:

    • 我想要最新的日期(最近的)所以应该使用 desc
    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2019-02-21
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    相关资源
    最近更新 更多