1
我必須使用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
,這可能是這樣的:
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的一個查詢中做這樣的事情?
,也許你的問題的一半可以像這樣做:http://stackoverflow.com/questions/276927/can-i-concatenate-multiple-mysql-rows-into-one-field – gordatron 2013-05-13 15:44:35
有這麼幾個類型的問題上SO – Kermit 2013-05-13 15:51:55