MySQL树结构数据库 - 复制节点的最佳方法?

时间:2014-03-31 07:55:04

标签: mysql tree

我有一个包含3列的数据库(node_id,node_parent,title)。现在,我试图找出复制节点并保留父ID的最佳方法。

这就是我的意思:

enter image description here

我正在考虑使用PHP递归执行它并遍历每个节点和子节点,但在我看来它根本没有优化。是否可以仅使用MySQL查询来执行此操作?

2 个答案:

答案 0 :(得分:0)

如果您想使用一个查询添加一个新行来保留现有行中的node_parenttitle,那么这应该有效:

INSERT INTO <table> SELECT NULL, node_parent, title FROM <table> WHERE id = 1;

请注意,node_id列应设置为AUTO_INCREMENT

答案 1 :(得分:0)

您需要复制多少级别?如果只有一个,那么您可以执行以下操作:

INSERT INTO table1 SELECT NULL,node_parent, title FROM table1 WHERE id=2;
INSERT INTO table1 SELECT null,LAST_INSERT_ID(),title FROM table1 where node_parent=2;

如前面提到的海报,node_id应为AUTO_INCREMENT。