我有一个这样的MySQL表
id parentid name
-- ------ ----
1 0 name1
2 1 name2
3 2 name3
4 0 name4
. . ....
将一些行复制到新表后,我需要将parentid值替换为新插入的id,如果它不像下面那样为0
ids parentids names
-- ------ ----
10 0 name1
11 10 name2
12 11 name3
13 0 name4
. . ....
如何使用PHP和MySQL建立这个?谢谢你。
您可能应该尽您所能保持id相同。如果这是不可避免的,您将不得不重新映射它们:
CREATE TEMPORARY TABLE _remap AS
SELECT table_b.id AS new_id, table_a.id AS old_id
FROM table_b
LEFT JOIN table_a ON table_a.name=table_b.name
UPDATE table_b,_remap SET table_b.parent_id=_remap.new_id
WHERE table_b.parent_id=_remap.old_id
假定您的name
列是唯一的
我不太确定您所说的" to a new插入的id "是什么意思,但这可能有助于您开始:
UPDATE tableName SET `parentid` = '(Enter new value here)' WHERE parentid != 0;