保留使用 COUNT 和 GROUP By 选择行时通常会丢失的行。保持说另一列并将它们合并到使用 GROUP_CONCAT 函数分隔的列逗号中。

举这个例子。

SELECT
    COUNT(tickets.memberID) AS tickets,
    members.username
 FROM
    tickets,
    members
WHERE
    tickets.memberID=members.memberID
GROUP BY
    tickets.memberID
ORDER BY
    tickets DESC

这将输出每个用户拥有的票证数量,如果主题需要与用户一起显示,它不会那么简单,因为每一行都会有一个主题,但由于它使用 GROUP BY 只会返回一个主题。<

这是 GROUP_CONCAT 的用武之地,使用 GROUP_CONCAT 可以收集所有主题并用逗号分隔并放置在单个列中:

SELECT
    COUNT(tickets.memberID) AS tickets,
    members.username,
    GROUP_CONCAT(tickets.subject) AS subject
 FROM
    tickets,
    members
WHERE
    tickets.memberID=members.memberID
GROUP BY
    tickets.memberID
ORDER BY
    tickets DESC

使用 GROUP_CONCAT 后,上面的查询现在将返回行中的所有主题,如果没有使用 GROUP BY,则将返回这些行。
确实是一个非常有用的功能。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。