gpt4 book ai didi

mysql - 从逗号分隔的文本创建表格

转载 作者:行者123 更新时间:2023-11-29 13:12:57 24 4
gpt4 key购买 nike

有几种解决方案可以做到这一点,但我的情况有点不同。
例如,

数据样本
表:数据

suid(bigint), start(bigint), end(bigint), route(text)
123, 111, 112, '1111, 1112, 1113, 1114'
123, 114, 115, '2221, 2222, 2223'
133, 121, 122, '331, 332, 333'

预期结果:
需要创建一个表:newdata

suid(bigint), start(bigint), end(bigint), road_seg1(int), road_seg2(int)
123, 111, 112, 1111, 1112
123, 111, 112, 1112, 1113
123, 111, 112, 1113, 1114
123, 114, 115, 2221, 2222
123, 114, 115, 2222, 2223
133, 121, 122, 331, 332
133, 121, 122, 332, 333


所以我需要来自路线(文本)的{第一,第二},{第二,第三},{第三,第四}.....
路线(文本)项目可能最多可以有 100 个项目,但项目总数是随机的
任何帮助将不胜感激。我正在使用MySql。
谢谢。

最佳答案

如果此类连接点的数量有限,您可以使用相当复杂的查询来完成此操作:

select d.suid, s.start, s.end,
substring(substring_index(route, ', ', n.n), ', ', -1) as road_seg1,
substring(substring_index(route, ', ', n.n+1), ', ', -1) as road_seg2
from data d cross join
(select 1 as n union all select 2 union all select 3
) n
where length(replace(route, ', ', ', x')) - length(route) <= n.n;

substring_index() 的嵌套调用正在从字符串中提取第 n 项和第 n+1 项。查询查找的项目总数由子查询 n 定义(在本例中为 3,但您可以添加更多值)。 where 子句选择小于列表中项目数的 n 值。

关于mysql - 从逗号分隔的文本创建表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21843640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com