1

我基本上是在创建一个论坛。我正在输出与我的“帖子”和“成员”表连接的所有主题。这样我可以在主题索引上显示帖子和成员信息。

我想要做的是收集最后三个发布成员的用户名,我只想要唯一的值(没有重复,以防有人重复发帖)我目前正在使用 DISTINCT,但问题是用户名分组后他们是倒序排列的。如果有人发了第一篇和最后一篇文章,我将无法在此列表中检索他们的用户名。

这是我正在使用的代码:

SUBSTRING_INDEX(
  GROUP_CONCAT(DISTINCT `members`.`username` ORDER BY `posts`.`date` DESC SEPARATOR '\\\\') , '\\\\', 3
) AS member_last_username

有没有办法可以修改该代码,以便用户名在分组之前向后排序?如果我的问题令人困惑,我深表歉意!

4

1 回答 1

0

当然,做一个子选择,以您想要的方式排序您的数据并将其用作输入。

SELECT 
  SUBSTRING_INDEX(
    GROUP_CONCAT(DISTINCT sub.username ORDER BY sub.`date` 
                 DESC SEPARATOR '\\\\') , '\\\\', 3
  ) AS member_last_username
FROM (SELECT m.username, p.`date` 
      FROM members m
      INNER JOIN post p ON (some join or other)
      ORDER BY backwards ordering ) sub
于 2013-02-10T09:33:05.507 回答