【问题标题】:How to group results from MySQL如何对 MySQL 的结果进行分组
【发布时间】:2012-09-12 17:52:24
【问题描述】:

MySQL 是我的弱点。我的页面上有以下 MySQL 查询。变量 $this_groupMembers 和 $this_groupInvites 都是预先确定的字符串,格式为 '1,2,3' 等:

SELECT
    username
FROM
    chat_users
WHERE
    ID IN($this_groupMembers) OR
    ID IN($this_groupInvites)

我需要做的是对结果进行分组,以便我可以与受邀成员分开访问现有成员。 IE。根据 MySQL 查询的结果创建变量 $groupMembers_usernames 和 $groupInvites_usernames,而无需使用 PHP 剖析结果。

有没有办法让 MySQL 完成所有工作?

谢谢你,

【问题讨论】:

  • 有什么原因不能运行两个不同的查询,每组成员一个?
  • 如果您不想在 PHP 中剖析结果,您可以随时进行两次查询...

标签: php mysql grouping


【解决方案1】:

您可以使用带常量的 UNION 对返回的行进行分类:

SELECT
    username, 'member'
FROM
    chat_users
WHERE
    ID IN($this_groupMembers)
UNION
SELECT
    username, 'invitee'
FROM
    chat_users
WHERE
    ID IN($this_groupInvites)

【讨论】:

  • 对于延迟接受您的回答表示歉意。我问这个问题的那天晚上,我的拇指骨折了,从那以后我一直没有行动。迟到总比没有好!
【解决方案2】:

最简单的方法是有两个单独的查询,但是,如果 - 无论出于何种原因 - 你真的需要一个,你可以:

SELECT
    username, ID IN($this_groupMembers) AS member
FROM
    chat_users
WHERE
    ID IN($this_groupMembers) OR
    ID IN($this_groupInvites)

如果是会员则为 1,如果被邀请则为 0

【讨论】:

    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多