0
我正在使用表格。爲了說明問題:MySQL加入,包括來自返回分隔值的所有值
mysql> SELECT users.id, username, REPLACE(selected_groups, '\r', ', '), groups.id, groups.label FROM users LEFT JOIN groups ON users.selected_groups;
+----+------------------------+--------------------------------------+------+---------------+
| id | username | REPLACE(selected_groups, '\r', ', ') | id | label |
+----+------------------------+--------------------------------------+------+---------------+
| 7 | Greg | 1, 2, 3, | 1 | Administrator |
| 7 | Greg | 1, 2, 3, | 2 | Member |
| 7 | Greg | 1, 2, 3, | 3 | Banned |
| 8 | Steve | 1, 2, | 1 | Administrator |
| 8 | Steve | 1, 2, | 2 | Member |
| 8 | Steve | 1, 2, | 3 | Banned |
| 9 | Steve The Banned Admin | 1, 3, | 1 | Administrator |
| 9 | Steve The Banned Admin | 1, 3, | 2 | Member |
| 9 | Steve The Banned Admin | 1, 3, | 3 | Banned |
| 10 | Example man | 1, 2, 3, | 1 | Administrator |
| 10 | Example man | 1, 2, 3, | 2 | Member |
| 10 | Example man | 1, 2, 3, | 3 | Banned |
+----+------------------------+--------------------------------------+------+---------------+
12 rows in set (0.00 sec)
正如你所看到的,我有一個用戶表和一個組表。在用戶表內是一個'selected_groups'列,其中相關組使用返回分隔值('\ r')來定義。
問題是我不太確定我如何在標籤字段中返回每個必需的標籤。所產生的輸出在理想情況下是這樣的:
+----+------------------------+--------------------------------------+------+-------------------------------+
| id | username | REPLACE(selected_groups, '\r', ', ') | id | groups.label |
+----+------------------------+--------------------------------------+------+-------------------------------+
| 7 | Greg | 1, 2, 3, | 1 | Administrator, Member, Banned |
| 8 | Steve | 1, 2, | 1 | Administrator, Member |
| 9 | Steve The Banned Admin | 1, 3, | 1 | Administrator, Banned |
| 10 | Example man | 1, 2, 3, | 1 | Administrator, Member, Banned |
+----+------------------------+--------------------------------------+------+-------------------------------+
你認爲這是可能的,如果是這樣,沒有任何人有任何提示/我的解決方案?
非常感謝, 瑞奇
我似乎無法讓它以這種方式工作。在這種情況下,group_concat似乎要做的就是返回每個用戶的所有組標籤(就好像每個用戶在selected_groups字段中都有1 \ r2 \ r3 \ r一樣)。 – 2011-02-26 14:33:58
奇怪,它應該工作......我在接下來的幾個小時內沒有訪問過mysql服務器,但我稍後會檢查。 – krtek 2011-02-26 16:30:51