gpt4 book ai didi

mysql - 数据库中的拆分数字由破折号 (-) 分隔

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:33 26 4
gpt4 key购买 nike

我正在尝试将超过 400 万行的列拆分为 4 个新列,问题是我不知道在哪里查看或我应该使用 Google 搜索哪个术语。 (是的,我已经在 Google 和 Stack 中搜索了一个类似的问题,但只在堆栈上找到了一个可能是一个很好的解决方案,但不确定是否有帮助,添加了相关问题的进一步链接。)

这是我的数据库。

ID  Security
1 1-5-4-6
2 2-4-06-5
3 1-4-1-2
4 1-4-1-3
5 1-45-5-32

我正在尝试做的是以下内容,“安全”列需要拆分为 4 个单独的列(组、lvl、 key 、代码)

ID  group   lvl key code
1 1 5 4 6
2 2 4 6 5
3 1 4 1 2
4 1 4 1 3
5 1 45 5 32

我遇到的问题是找到一个合适的解决方案来拆分这些数字,一个问题是当前的安全列每个分隔最多可以有 3 个字符。

我可以有一行包含 01-45-822-01 或像 1-2-3-4 一样简单。

我确实在 stackoverflow 上找到了一个问题
MySQL : how to split text and number with "-"

它似乎确实为我指明了正确的方向,但仍然不确定这是否适合如此大的数据集。超过 5.9gb 的索引或是否有更快的方法。

最佳答案

您可以使用 SUBSTRING_INDEX在一个查询中完成这一切:

UPDATE `table`
SET
`group` = SUBSTRING_INDEX(`Security`, '-', 1),
`lvl` = SUBSTRING_INDEX(SUBSTRING_INDEX(`Security`, '-', 2), '-', -1),
`key` = SUBSTRING_INDEX(SUBSTRING_INDEX(`Security`, '-', 3), '-', -1),
`code` = SUBSTRING_INDEX(`Security`, '-', -1);

在假设您不再将数字存储为文本的情况下,您可能希望在每一个周围包裹一个 CAST(expr AS UNSIGNED)

关于mysql - 数据库中的拆分数字由破折号 (-) 分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330492/

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