表的数据如下:
RandomId ID NAME PATH
0 1 名称1
0 2 名称2
0 3 名称3
0 4 名称4
1 10 .0.1.6.10.
1 11 .0.1.6.11.
1 12 .0.2.6.12.
1 13 .0.2.6.13.
1 14 .0.3.6.14.
1 15 .0.3.6.15.
1 16 .0.3.6.16.
1 17 .0.4.6.17.
1 18 .0.4.6.18.
1 19 .0.4.6.19.
1 20 .0.1.6.20.说明:PATH字段中点与点之间的值为ID字段的值
请问如何用一个UPDATE语句将RandomId为0的记录的NAME字段的值更新到RandomId的值为1的记录的NAME中,条件是RandomId为1的记录的PATH值中存在RandomId为0的记录的ID的值???
也就是如何用一个UPDATE语句得到下面的结果:
RandomId ID NAME PATH
0 1 名称1
0 2 名称2
0 3 名称3
0 4 名称4
1 10 名称1 .0.1.6.10.
1 11 名称1 .0.1.6.11.
1 12 名称2 .0.2.6.12.
1 13 名称2 .0.2.6.13.
1 14 名称3 .0.3.6.14.
1 15 名称3 .0.3.6.15.
1 16 名称3 .0.3.6.16.
1 17 名称4 .0.4.6.17.
1 18 名称4 .0.4.6.18.
1 19 名称4 .0.4.6.19.
1 20 名称4 .0.1.6.20.
RandomId ID NAME PATH
0 1 名称1
0 2 名称2
0 3 名称3
0 4 名称4
1 10 .0.1.6.10.
1 11 .0.1.6.11.
1 12 .0.2.6.12.
1 13 .0.2.6.13.
1 14 .0.3.6.14.
1 15 .0.3.6.15.
1 16 .0.3.6.16.
1 17 .0.4.6.17.
1 18 .0.4.6.18.
1 19 .0.4.6.19.
1 20 .0.1.6.20.说明:PATH字段中点与点之间的值为ID字段的值
请问如何用一个UPDATE语句将RandomId为0的记录的NAME字段的值更新到RandomId的值为1的记录的NAME中,条件是RandomId为1的记录的PATH值中存在RandomId为0的记录的ID的值???
也就是如何用一个UPDATE语句得到下面的结果:
RandomId ID NAME PATH
0 1 名称1
0 2 名称2
0 3 名称3
0 4 名称4
1 10 名称1 .0.1.6.10.
1 11 名称1 .0.1.6.11.
1 12 名称2 .0.2.6.12.
1 13 名称2 .0.2.6.13.
1 14 名称3 .0.3.6.14.
1 15 名称3 .0.3.6.15.
1 16 名称3 .0.3.6.16.
1 17 名称4 .0.4.6.17.
1 18 名称4 .0.4.6.18.
1 19 名称4 .0.4.6.19.
1 20 名称4 .0.1.6.20.
update tablename set name='名称1' where to_number(substr(path,4,1))=1;
update tablename set name='名称2' where to_number(substr(path,4,1))=2;
update tablename set name='名称3' where to_number(substr(path,4,1))=3;
update tablename set name='名称4' where to_number(substr(path,4,1))=4;