MySQL行具有相同的值,但在不同的列中&一行显示
我想做的是合并具有相同值但在不同列中的行& 我尝试使用JSON_ARRAYAGG()在一行中显示它们,
但没有以我的方式获得结果
用户数据
此次级用户是primary_user
ID | 用户名 | sectername seconser_user | code |
---|---|---|---|
1 | max_max | null | 1356 |
2 | jac_jac | 1 | 1111 |
3 | leo_leo | null | 2222 |
4 | bob_bob | 3 | 4444 |
结果我想要
id | 用户名 | seconser_user | code | secondary_users |
---|---|---|---|---|
1 | max_max | null | 1356 | [{“ jac_jac”,“ jac_jac”,“ 1111”}] |
3 | leo_leo_leo | null null null | 22222 | [ ,“ 4444”}]] |
What I want to do is merge the rows which have same values but in different column & Show them in a single row
I Tried to use the JSON_ARRAYAGG() but didn't get the results in my way
User Data
Here secondary user is the reference of primary_user
id | username | secondary_user | code |
---|---|---|---|
1 | max_max | null | 1356 |
2 | jac_jac | 1 | 1111 |
3 | leo_leo | null | 2222 |
4 | bob_bob | 3 | 4444 |
Result I want
id | username | secondary_user | code | secondary_users |
---|---|---|---|---|
1 | max_max | null | 1356 | [{"jac_jac", "1111"}] |
3 | leo_leo | null | 2222 | [{"bob_bob", "4444"}] |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您需要桌子的自我加入。
然后使用
json_object()
以{“ user_name”:“ user_code”}
和不{“ user_name”,“ user_name”, “ user_code”}
,最后汇总并使用json_arrayagg()
:我假设
id
是表的主要键。请参阅
First you need a self join of the table.
Then use
JSON_OBJECT()
to create valid json objects for a user in the form of{"user_name": "user_code"}
and not{"user_name", "user_code"}
and finally aggregate and useJSON_ARRAYAGG()
:I assume that
id
is the primary key of the table.See the demo.