如何用sql分割数据?

数据有两条,分别是:

id name

1 {"id":"1","serviceKey": "0001"}, {"id":"3","serviceKey": "0003"}

2 {"id":"2","serviceKey": "0002"}, {"id":"4","serviceKey": "0004"}

能不能执行查询后拆成 4条数据:

id name

1 {"id":"1","serviceKey": "0001"}

2 {"id":"2","serviceKey": "0002"}

1 {"id":"3","serviceKey": "0003"}

2 {"id":"4","serviceKey": "0004"}

麻烦用纯sql,可以用mysql自带的函数,谢谢。

image.png

873282620 发布于 2022-10-25 11:11 (编辑于 2022-10-25 11:41)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
free_zzLv6中级互助
发布于2022-10-25 11:45(编辑于 2022-10-25 11:45)

select id,a1 from

(SELECT 

a.id,

substring_index(a.name,', {',  1) a1,

substring_index(b.name,'}, ',  -1) a2

FROM `test11` a  join test11 b on a.id=b.id) a

union all

select id,a2 from

(SELECT 

a.id,

substring_index(a.name,', {',  1) a1,

substring_index(b.name,'}, ',  -1) a2

FROM `test11` a  join test11 b on a.id=b.id) a

image.pngimage.png

  • 873282620 873282620(提问者) https://bbs.fanruan.com/wenda/question/134906.html 麻烦顺手看看这个
    2022-10-25 13:53 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-10-25 11:17
  • 873282620 873282620(提问者) 你的方案不行,我执行过不对
    2022-10-25 11:37 
  • Z4u3z1 Z4u3z1 回复 873282620(提问者) 抱歉 我没mysql 没法测试。加上你的MYSQL 版本度娘一下 肯定有适合你的
    2022-10-25 11:38 
最佳回答
0
用户k6280494Lv6资深互助
发布于2022-10-25 11:26

SELECT b.T 

FROM(

SELECT CONVERT(XML,'<n>'+REPLACE(REPLACE('HY-107860;HY-107871;HY-109816;HY-109824;HY-109826;HY-113868;HY-2169',';',','),',','</n><n>')+'</n>') AS xmlval 

) a 

CROSS APPLY(

SELECT k.n.value('.','nvarchar(80)') T 

FROM a.xmlval.nodes('n') k(n)

) b  

  • 873282620 873282620(提问者) 你这个有点高级,看不太懂,你能根据我的表来执行下吗?
    2022-10-25 11:39 
  • 3关注人数
  • 399浏览人数
  • 最后回答于:2022-10-25 11:45
    请选择关闭问题的原因
    确定 取消
    返回顶部