考虑 Facebook。Facebook 显示任何状态的最新 2 条评论。我想做类似的事情。
我有一张桌子,例如status_id
,和。现在我想为每个获取最新的 2 条评论。comment_id
comment
timestamp
status_id
目前我首先做GROUP_CONCAT
所有列中的一个,分组status_id
,然后使用SUBSTRING_INDEX
with -2
。
这会获取最新的 2 条评论,但是GROUP_CONCAT
status_id 的所有记录都是开销。
SELECT SUBSTRING_INDEX(GROUP_CONCAT('~', comment_id,
'~', comment,
'~', timestamp)
SEPARATOR '|~|'),
'|~|', -2)
FROM commenttable
GROUP BY status_id;
你能帮助我更好的方法吗?
我的桌子是这样的——
status_id comment_id 评论时间戳
1 1 xyz1 3 hour
1 2 xyz2 2 hour
1 3 xyz3 1 hour
2 4 xyz4 2 hour
2 6 xyz6 1 hour
3 5 xyz5 1 hour
所以我希望输出为 -
1 2 xyz2 2 hour
1 3 xyz3 1 hour
2 4 xyz4 2 hour
2 6 xyz6 1 hour
3 5 xyz5 1 hour