作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我基本上是在创建一个论坛。我正在输出所有主题以及我的“帖子”和“成员”表。这样我就可以在主题索引上显示帖子和成员信息。
我想做的是收集最后三个发帖成员的用户名,我只想要唯一值(不要重复,以防有人重复发帖)我目前正在使用 DISTINCT,但问题是用户名在向后排序后分组。如果有人发布了第一个和最后一个帖子,我将无法在此列表中检索他们的用户名。
这是我使用的代码:
SUBSTRING_INDEX(
GROUP_CONCAT(DISTINCT `members`.`username` ORDER BY `posts`.`date` DESC SEPARATOR '\\\\') , '\\\\', 3
) AS member_last_username
有没有一种方法可以修改该代码,以便用户名在分组之前向后排序?如果我的问题令人困惑,我深表歉意!
最佳答案
当然,做一个子选择,按照你想要的方式排序你的数据,并将其用作输入。
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
关于php - ORDER BY 之后的 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793426/
我是一名优秀的程序员,十分优秀!