我必须使用 MySQL 数据库,其中某些列的不同 ID 保存在一列中,由管道字符分隔。例如:
用户表:
id | username | groups
1 | user1 | 1|2|3|5
组 ID 对应于组。它显示了用户所在的组。所以还有一个Groups
表:
组表:
id | groupname
1 | group1
2 | group2
3 | group3
4 | group4
5 | group5
我想做的是选择一个用户,然后选择groupnames
该用户所在的所有内容,例如JOIN
. 因为user1
这是除 之外的所有组。 group4
如果将组保存在另一个名为 的表中user_groups
,这显然会更容易,如下所示:
用户组表:
fk_user_id | fk_group_id
1 | 1
1 | 2
1 | 3
1 | 5
但是,不幸的是,我无法更改数据库架构,因为整个系统已经基于此。
我想知道在单个查询中选择用户时是否有一种智能方法可以获取所有组名。例如,结果可能如下所示:
id | username | groups | groupnames
1 | user1 | 1|2|3|5 | group1|group2|group3|group5
是否有可能在一个使用 MySQL 的查询中以某种方式做这样的事情?