gpt4 book ai didi

mysql - 将 mySQL 中的单元格拆分为多行,同时保持相同 "ID"

转载 作者:行者123 更新时间:2023-11-29 21:34:06 26 4
gpt4 key购买 nike

在我的表格中,有两列“sku”和“fitment”。 sku 代表一个零件,配件代表该零件将安装的所有车辆。问题是,在装配单元中,最多可以有 20 辆车,中间用 ^^ 分隔。例如

**sku   --   fitment**  
part1 -- Vehichle 1 information ^^ vehichle 2 information ^^ vehichle 3 etc

我希望拆分配件列中的单元格,因此它看起来像这样:

**sku -- fitment** 

part1 -- Vehicle 1 information

part1 -- Vehicle 2 information

part1 -- Vehicle 3 information

这可以做到吗?如果是这样,mySQL 数据库是否能够处理数十万个像这样“拆分”的项目?我想它会将我的 25 万行左右的数据库变成大约 2000 万行。如有任何帮助,我们将不胜感激!

还有一点背景知识,这将用于深入搜索功能,这样我就能够将零件与车辆相匹配(年份、品牌、型号等),所以如果您有更好的解决方案,我我洗耳恭听。

谢谢

最佳答案

可能与此重复:Split value from one field to two

不幸的是,MySQL 没有分割字符串的功能。如上面的链接所示,有 User-defined Split function的。

用于获取数据的更详细版本如下:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(fitment, '^^', 1), '^^', -1) as fitmentvehicle1,
SUBSTRING_INDEX(SUBSTRING_INDEX(fitment, '^^', 2), '^^', -1) as fitmentvehicle2
....
SUBSTRING_INDEX(SUBSTRING_INDEX(fitment, '^^', n), '^^', -1) as fitmentvehiclen
FROM table_name;
  1. 由于您的要求要求检索标准化格式(即不使用 ^^ 分隔),因此最好首先以这种方式存储它。并且随着数据库大小的膨胀,您可能需要研究归档旧数据并从表中删除相同数据的可能性。
  2. 此外,您应该根据您的要求使用有效的分区策略对表进行分区。归档和截断表本身的分区会更容易,而不是逐行归档和截断。

关于mysql - 将 mySQL 中的单元格拆分为多行,同时保持相同 "ID",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039880/

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