【发布时间】:2021-03-18 16:57:01
【问题描述】:
我继承了一个 mysql 数据库并试图将其迁移到 mongodb。有一个名为details 的字段包含一些我想要拆分的键值“对”。可能有一个键/值对,或者由多个分隔符拆分的多个对。我把对放在引号中,因为它们的格式很奇怪。它们由冒号: 分隔,键值由逗号, 分隔。例如,这里是一个这样的字段的值:
Normal Duty,5min:Heavy Duty,10min:Riser,10max:
这是 3 个键值对,由冒号分隔。如果可能的话,我想将它们放入一个 json 对象中,如下所示:
{
'Normal Duty': '5min',
'Heavy Duty': '10min',
'Riser': '10max'
}
我认为如果 substring_index 只有一个具有单个分隔符的键/值对,我可以使用它来完成,但是我在想办法提取具有多个分隔符的多个键/值对时迷失了方向。我能够计算定界符的数量,SELECT id, details, LENGTH(details) - LENGTH(REPLACE(details, ':', '')) AS COUNT FROM type,但不确定如何在循环或其他内容中使用该数字。
【问题讨论】:
-
@Akina,不,它们可以包含 1、3、6 或 7 甚至 0。真的是任意数量的对。
-
@Akina 数据当前位于 MySQL 数据库版本 5.7.28
-
@Akina 我看到的最大数量是 6 对