一个表,三列MYSQL查询问题

引用我前面的问题:一个表,两列MYSQL查询挑战

命令:“SELECT hostname,GROUP_CONCAT(DISTINCT name)as name FROM comments GROUP BY hostname”

返回预期结果:

192.168.0.1 user1,user2

192.168.3.5 user3

同一张表“评论”也有一个“时间戳”字段。 如何为每个使用该ip的用户添加最新(最新)的时间戳?

例:

192.168.0.1 user1-1277146500,user2-1277250087

192.168.3.5 user3-1237150048

我尝试了一些命令的变体,但只能得到所有的时间戳,而不是最新的一个......

另外,如果可能的话,在显示它之前将时代戳转换为更友好的东西会很好。


SELECT 
     hostname, 
     GROUP_CONCAT(CONCAT_WS("-", name, m_timestamp))
FROM
     (SELECT 
          hostname, 
          name,
          cast(max(timestamp) as char(24)) as m_timestamp 
     FROM 
          comments 
     GROUP BY 
          hostname,
          name) as A
GROUP BY 
     hostname

编辑

每个OP的注释将列名更新为时间戳(是c_timestamp)


varchar转换的Max(timestamp) Concat到名称并在Group by子句中添加时间戳

SELECT hostname,
  GROUP_CONCAT(DISTINCT name, CAST(MAX('timestamp') AS VARCHAR) as name 
FROM comments GROUP BY hostname

认为它会工作,但我没有测试过。


MAX(`timestamp`)
链接地址: http://www.djcxy.com/p/5165.html

上一篇: One table, three column MYSQL query question

下一篇: Finding duplicate values in a SQL table