如何对MySQL的结果进行分组

时间:2012-09-12 17:52:25

标签: php mysql grouping

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

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

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

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

谢谢你,

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

最容易的事情是有两个单独的查询,但是,如果 - 无论出于何种原因 - 你真的需要一个:

SELECT
    username, ID IN($this_groupMembers) AS member
FROM
    chat_users
WHERE
    ID IN($this_groupMembers) OR
    ID IN($this_groupInvites)
如果是会员,

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