按UserID对结果进行分组,然后创建列数据数组

时间:2016-10-02 13:42:48

标签: php mysql css

目前使用以下内容:

SELECT o.*, u.*
FROM Owned o
INNER JOIN Users u USING (UserID) 

用户“拥有”div,有些人可能比其他人拥有更多,我想将他们的用户ID应用于生成的div。例如,用户123可能拥有div的3b和5c,所以我想做类似的事情:

#3b,#5c {
    background: url($row['logo']);
}

目前,我正在执行以下操作:

#3b {
    background: url(<?=$row['logo']?>);
}
#5c {
    background: url(<?=$row['logo']?>);
}

这意味着对数据库进行大量不必要的调用。我最好如何为每个用户构建一个$row['ownedID']数组来执行以下操作:

foreach user {
    #<?=$ownedID[]?>{
        background: url(<?=$row['logo']?>)
    }
}

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?

SELECT UserId, GROUP_CONCAT(o.div) as divs
FROM Users u INNER JOIN
     Owned o
     USING (UserID) 
GROUP BY UserId;

这将div连接成一个字符串。

如果您愿意,可以在前面添加一个角色:

SELECT UserId, GROUP_CONCAT('#', o.div) as divs
FROM Users u INNER JOIN
     Owned o
     USING (UserID) 
GROUP BY UserId;

GROUP_CONCAT()将其第一个参数连接在一起,而不需要明确的CONCAT()