如何更改超过1,000,000,000条记录中的子字符串?

问题描述 投票:0回答:1

我有一个数据库表,其中包含列dbValuesdbKeysdbKeys值是一个字符串,其中包含用;分隔的键。

dbKeys 1: "name;age;color;...price"
dbKeys 2: "city;street;age;...favourite_meal"
...

[dbValuesdbKeys的格式相同,但包含此键的值。

dbValues 1: "Peter;18;blue;...64"
dbValues 2: "London;Main;40;...applepie"
...

多于1000000000000行。我需要从键所在的所有记录中删除一些键及其值,例如age键,因此结果将是:

dbKeys 1: "name;color;...price"
dbKeys 2: "city;street;...favourite_meal"
...

dbValues 1: "Peter;blue;...64"
dbValues 2: "London;Main;...applepie"
...

您有没有建议如何以最有效的方式修改dbKeys列中具有特定键值的所有记录?我更喜欢一些SQL或.NET / C#中的东西。

我的解决方案是为所有记录(或每1000条记录)创建周期,并分别更改每条记录。但这对我来说不是很有效。因此,我愿意接受任何其他建议。

c# sql .net database
1个回答
1
投票

这在SQL中确实很困难,但在C#中非常容易。只是:

  • 加载记录
  • String.Split()将值(用于两列)拆分为列表
  • 通过按键循环。如果存在匹配项,请从both列表中删除索引。
  • 使用String.Join()将列表重新加入字符串中>
  • 保存记录
  • 您可能想批量保存而不是单独保存。

当然,首先以这种形式存储数据并不理想。但是您可能已经知道。

© www.soinside.com 2019 - 2024. All rights reserved.