参考我之前的问题: One table, two column MYSQL query challenge
命令: “SELECT主机名,GROUP_CONCAT(DISTINCT名称)作为名称FROM comments GROUP BY hostname”
返回预期结果:
192.168.0.1 user1,user2
192.168.3.5 user3
同一个表“comments”也有一个“timestamp”字段。如何使用该IP包含每个用户的最新(最新)时间戳?
示例:
192.168.0.1 user1-1277146500,user2-1277250087
192.168.3.5 user3-1237150048
我尝试了一些命令的变体,但只能得到所有时间戳,而不是最新的时间戳......
也..如果可能的话,在显示它之前将纪元时间戳转换为更友好的东西会更好。
答案 0 :(得分:4)
将varchar
已转换Max(timestamp)
转换为名称,并在Group by子句中添加时间戳
SELECT hostname,
GROUP_CONCAT(DISTINCT name, CAST(MAX('timestamp') AS VARCHAR) as name
FROM comments GROUP BY hostname
认为它会起作用,但我没有测试过。
答案 1 :(得分:0)
MAX(`timestamp`)
答案 2 :(得分:0)
SELECT hostname, GROUP_CONCAT(DISTINCT name) as name, max(TIMESTAMP_FIELD) as timestamp_name FROM comments GROUP BY hostname
答案 3 :(得分:0)
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)