我有这种情况,因此我需要第二张表。我必须订购文件“TYPEn”和concat()它们。
+----+------+-------+-------+-------+-------+
| ID | TYPE1| TYPE2 | TYPE3 | TYPE4 | TYPE5 |
+----+------+-------+-------+-------+-------+
| 1 | D | C | A | | |
| 2 | F | D | C | | |
| 3 | C | L | A | | |
| 4 | T | O | M | | |
+----+------+-------+-------+-------+-------+
+----+------+
| ID | RES |
+----+------+
| 1 | ACD |
| 2 | CDF |
| 3 | ACL |
| 4 | MOT |
+----+------+
答案 0 :(得分:1)
您正在尝试执行此操作,这极大地表明了非规范化架构。您应该考虑normalising您的架构,这将大大简化此操作。
就目前情况而言,您可以有效地(尽管非常低效)动态创建规范化数据结构,然后使用它们:
SELECT ID, GROUP_CONCAT(TYPE ORDER BY TYPE SEPARATOR '') RES FROM (
SELECT ID, TYPE1 TYPE FROM myTable
UNION ALL
SELECT ID, TYPE2 FROM myTable
UNION ALL
SELECT ID, TYPE3 FROM myTable
) t GROUP BY ID
在sqlfiddle上查看。