复杂的 group-by MySQL 语句

发布于 2024-11-29 07:10:11 字数 651 浏览 1 评论 0原文

我有一个包含以下列的表:

boxid - nouns - username

1 - w1,w2,w3 - user1
1 - w3,w2,w4 - user2
1 - w1,w8,w5 - user1
2 - w7,w2,w5 - user2

目前我有一个查询,允许我提取以下内容:

SELECT boxid, group_concat(concat(username,":",nouns) SEPARATOR "|") as listn  
FROM table group by boxid;

该查询返回以下内容:

box1 - user1:w1,w2,w3|user2:w3,w2,w4|user1:w1,w8,w5

但是,我想获取同一用户的所有名词而不重复用户(但重复每个用户的话),类似于以下结果:

box1 - user1:w1,w2,w3,w1,w8,w5|user2:w3,w2,w4

有人可以告诉我这是否可以用 mysql 完成以及如何完成吗?我不知道这一点...

(我可以用 php 做到这一点,但我认为在 sql 中获得直接结果会更快...)

提前致谢...

I have a table with the following columns:

boxid - nouns - username

1 - w1,w2,w3 - user1
1 - w3,w2,w4 - user2
1 - w1,w8,w5 - user1
2 - w7,w2,w5 - user2

and at the present I have a query that allows me to extract the following:

SELECT boxid, group_concat(concat(username,":",nouns) SEPARATOR "|") as listn  
FROM table group by boxid;

that query gives me back the following:

box1 - user1:w1,w2,w3|user2:w3,w2,w4|user1:w1,w8,w5

However, I would like to get all nouns of the same user without repeating users (but repeating words of every user), something like the following result:

box1 - user1:w1,w2,w3,w1,w8,w5|user2:w3,w2,w4

Can someone show me if this can be done with mysql and how? I have no idea of this...

(I can do this with php, but I think getting the direct result in sql would be faster...)

Thanks in advance...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有心的人 2024-12-06 07:10:11

试试这个:

SELECT boxid, group_concat(concat(username,":",nouns_list) SEPARATOR "|") as listn  
  FROM 
    (
    SELECT boxid, username, group_concat(nouns)  as nouns_list
        FROM table 
    GROUP BY boxid, username
) a
GROUP BY boxid

Try this:

SELECT boxid, group_concat(concat(username,":",nouns_list) SEPARATOR "|") as listn  
  FROM 
    (
    SELECT boxid, username, group_concat(nouns)  as nouns_list
        FROM table 
    GROUP BY boxid, username
) a
GROUP BY boxid
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文