一尘不染

将分隔的字符串值拆分为行

mysql

一些外部数据供应商希望给我一个数据字段-管道分隔的字符串值,我觉得这很难处理。

没有应用程序编程语言的帮助,有没有办法将字符串值转换为行?

但是,存在一个困难,该字段具有未知数量的定界元素。

有问题的数据库引擎是MySQL。

例如:

Input: Tuple(1, "a|b|c")

Output:

Tuple(1, "a")
Tuple(1, "b")
Tuple(1, "c")

阅读 233

收藏
2020-05-17

共1个答案

一尘不染

它可能没有我最初想象的那么困难。

这是一种通用方法:

  1. 计算分隔符的出现次数 length(val) - length(replace(val, '|', ''))
  2. 循环多次,每次获取一个新的定界值并将该值插入第二个表中。
2020-05-17