MySQL-通过冒号和循环将行拆分为列

MySQL-通过冒号和循环将行拆分为列,mysql,string,split,row,multiple-columns,Mysql,String,Split,Row,Multiple Columns,我正在尝试拆分以下字符串- Reference 1 Drug Name: Lisdexamphetamine, Strength: 30mg, Form: capsule, Quantity: 21 Drug Name: Lisdexamphetamine, Strength: 50mg, Form: capsule, Quantity: 21 Drug Name: Fentanyl, Strength: 100mcg, Form: patches, Quantity: 5 Drug Name:

我正在尝试拆分以下字符串-

Reference 1 Drug Name: Lisdexamphetamine, Strength: 30mg, Form: capsule, Quantity: 21 Drug Name: Lisdexamphetamine, Strength: 50mg, Form: capsule, Quantity: 21 Drug Name: Fentanyl, Strength: 100mcg, Form: patches, Quantity: 5 Drug Name: Durogesic , Strength: 25mcg, Form: patches, Quantity: 5 Drug Name: Durogesic, Strength: 75mcg, Form: patches, Quantity: 10 Drug Name: Durogesic,  Strength: 100mcg, Form: patches, Quantity: 15 Drug Name: Oxycodone, Strength: 20mg, Form: tablet, Quantity: 84
分为单独的列,例如参考|药物名称|强度|形式|数量

正如你所看到的,每个名字后面都有一个冒号

这就是我迄今为止所尝试的:

SELECT reference, email, SUBSTRING_INDEX(SUBSTRING_INDEX(drugs,',',1),':',-1) AS Drug, 
SUBSTRING_INDEX(SUBSTRING_INDEX(drugs,',',2),':',-1) AS Strength,
SUBSTRING_INDEX(SUBSTRING_INDEX(drugs,',',3),':',-1) AS Form
,
SUBSTRING_INDEX(SUBSTRING_INDEX(drugs,',',5),':',-1) AS Quantity
FROM CD2015_destructions
但每个参考号只返回1行,而可能有多行

当前声明给我:

Reference | Drug Name | Strength | form    | Quantity
1         |Paracetamol|20MG      | Tablet  | 5
2         |Methadone  | 15MG     | Liquid  | 10
3         |Pethadine  | 15MG     | Liquid  | 12
等等

但是如果我的参考号有多种药物,它不会显示下一行

Reference | Drug Name  | Strength | form    | Quantity
1         |Paracetamol | 20MG     | Tablet  | 5
1         |Oxyconton   | 15MG     | Liquid  | 10
1         |Methadone   | 25MG     | capsule | 10

你应该把你试过的东西也贴出来。对不起,我已经更新了我的问题。我建议用另一个工具来做。例如,将数据导出到Excel并将数据转换为列,可能会对其进行透视,然后重新导入数据。SQL不是这项工作的最佳工具。我无法做到这一点,它必须在用户需要检查其数据时实时运行。请提供表结构、当前查询结果和预期结果。虽然我不得不说,我觉得你尝试做的事情看起来非常错误…你也应该发布你尝试过的东西抱歉,我已经更新了我的问题我建议用另一个工具来做。例如,将数据导出到Excel并将数据转换为列,可能会对其进行透视,然后重新导入数据。SQL不是这项工作的最佳工具。我无法做到这一点,它必须在用户需要检查其数据时实时运行。请提供表结构、当前查询结果和预期结果。虽然我不得不说,我有一种感觉,你试图做的只是看起来非常非常错误。。。