【发布时间】:2017-04-20 03:10:59
【问题描述】:
我有一个表,其中有一列包含 id 列表: 1234,2345,3456
这些 id 中的每一个都是同一个表中某一行的主键。
每一行都有一个名称字段。如何将 id 列表更改为名称列表?
ID, NAME, IDLIST
----------------------
1234, name1, (null)
2345, name2, 1234,2345
3456, name3, 1234,3456
对每一列使用上面的 idList 将创建一个新列表:
nameList for 2345 = name1,name2
nameList for 3456 = name1,name3
SQL 的特定方言无关紧要,我只是想看看这是否可以在单个更新中完成。
【问题讨论】:
-
修复你的数据结构。如果您使用虚假的数据表示,那么代码比必要的要困难得多。您应该有一个选择表,每对 id 都有一行。
-
@GordonLinoff 感谢您的建议。有什么更好的方法来表示这样的场景吗?基本上,每个项目都可以有一个父项目,该列表代表链中的每个父项目。