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不是这项工作的最佳工具。我无法做到这一点,它必须在用户需要检查其数据时实时运行。请提供表结构、当前查询结果和预期结果。虽然我不得不说,我有一种感觉,你试图做的只是看起来非常非常错误。。。